home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 3 / Cream of the Crop 3.iso / utility / sfs100.zip / SFS1.DOC < prev    next >
Text File  |  1994-02-20  |  108KB  |  2,136 lines

  1.  
  2.                         sSSSSs      FFFFFFFFFF    sSSSSs
  3.                        sSSSSSSs     FFFFFFFFF    sSSSSSSs
  4.                       sSs     sS    FF          sSs     sS
  5.                       SS            FF          SS
  6.                       sSs           FF          sSs
  7.                        sSSSSSSs     FFFFFFF      sSSSSSSs
  8.                              sSs    FF                 sSs
  9.                               SS    FF                  SS
  10.                       Ss      Ss    FF          Ss      Ss
  11.                        sSSSSSSs     FF           sSSSSSSs
  12.                         sSSSSs      FF            sSSSSs
  13.  
  14.  
  15.                        S e c u r e   F i l e S y s t e m
  16.  
  17.  
  18.                      Copyright Peter C.Gutmann  1993, 1994
  19.  
  20.  
  21.       "The right to privacy... is the most comprehensive of rights and the
  22.        right most valued by civilized man"
  23.                           - Justice Louis Brandeis, US Supreme Court, 1928
  24.  
  25.  
  26. Ever since Julius Caesar used the cipher which now bears his name to try to
  27. hide his military dispatches from prying eyes, people have been working on
  28. various means to keep their confidential information private.  Over the years,
  29. the art of cryptography (that is, of scrambling information so only those in
  30. possession of the correct password can unscramble it) has progressed from
  31. simple pencil-and-paper systems to more sophisticated schemes involving complex
  32. electromechanical devices and eventually computers.  The means of breaking
  33. these schemes has progressed on a similar level.  Today, with the
  34. ever-increasing amount of information stored on computers, good cryptography is
  35. needed more than ever before.
  36.  
  37. There are two main areas in which privacy protection of data is required:
  38.  
  39.   - Protection of bulk data stored on disk or tape.
  40.   - Protection of messages sent to others.
  41.  
  42. SFS is intended to solve the problem of protecting bulk data stored on disk.
  43. The protection of electronic messages is best solved by software packages such
  44. as PGP (available on sites the world over) or various versions of PEM
  45. (currently available mainly in the US, although non-US versions are beginning
  46. to appear).
  47.  
  48. SFS has the following features:
  49.  
  50.   - The current implementation runs as a standard DOS device driver, and
  51.     therefore works with plain old DOS as well as other software such as
  52.     Windows, QEMM, Share, disk cacheing software, Stacker, and so on.
  53.  
  54.   - Up to five encrypted volumes can be accessed at any one time, chosen from
  55.     a selection of as many volumes as there is storage for.
  56.  
  57.   - Volumes can be quickly unmounted with a user-defined hotkey, or
  58.     automatically unmounted after a certain amount of time.  They can also be
  59.     converted back to unencrypted volumes or have their contents destroyed if
  60.     required.
  61.  
  62.   - The encryption algorithms used have been selected to be free from any
  63.     patent restrictions, and the software itself is not covered by US export
  64.     restrictions as it was developed entirely outside the US (although once a
  65.     copy is sent into the US it can't be re-exported).
  66.  
  67.   - SFS complies with a number of national and international data encryption
  68.     standards, among them ANSI X3.106, Federal Information Processing Standard
  69.     (FIPS) 180, Australian Standard 2805.5.2, ISO 10116:1991 and ISO
  70.     10126-2:1991, and is on nodding terms with a several other relevant
  71.     standards.
  72.  
  73.   - The documentation includes fairly in-depth analyses of various security
  74.     aspects of the software, as well as complete design and programming details
  75.     necessary to both create SFS-compatible software and to verify the
  76.     algorithms used in SFS.
  77.  
  78.   - The encryption system provides reasonable performance.  One tester has
  79.     reported a throughput of 250 K/s for the basic version of SFS, and 260 K/s
  80.     for the 486+ version on his 486 system, when copying a file with the DOS
  81.     copy command from one location on an SFS volume to another.  Throughput on
  82.     a vanilla 386 system was reported at around 160 K/s.
  83.  
  84. Although the use of DOS is described throughout this document, SFS is not
  85. limited to any particular operating environment, and can be used to contain
  86. virtually any type of filesystem.  In the future an SFS driver for OS/2 HPFS
  87. filesystems may be developed, and there have been discussions on creating a
  88. Linux SFS driver for Unix machines.  A 68000 version of SFS is also reported to
  89. be under development.
  90.  
  91.  
  92. Overview
  93. --------
  94.  
  95. This document is organised to give step-by-step instructions on setting up the
  96. SFS driver, creating an encrypted volume, and using the encrypted volume to
  97. store information securely.  The first three sections cover each of these
  98. steps, with a special quick-start section preceding them giving a rapid
  99. introduction to getting an encrypted disk volume up and running.  The next
  100. sections provide extra details on topics such as password management,
  101. incompatibility problems, other encryption software, and the politics of
  102. cryptography and privacy.  The final sections provide an in-depth security
  103. analysis, technical information on the SFS driver and data formats for those
  104. wishing to write SFS-compatible software or wanting to check the security of
  105. the software for themselves.
  106.  
  107. The document is divided into sections as follows:
  108.  
  109.   Terminology
  110.         An explanation of some of the technical terms use in this
  111.         document.  Experienced users can skip this section.
  112.   Quick Start
  113.         A quick overview of the use of SFS which summarizes the
  114.         next three sections for people in a hurry
  115.   Loading the SFS Driver
  116.         How to set up the SFS driver needed to handle encrypted
  117.         volumes.
  118.   Creating an SFS Volume
  119.         How to prepare an SFS encrypted volume for use.
  120.   Mounting an SFS Volume
  121.         How to mount a previously prepared SFS encrypted volume
  122.         so the operating system can use it.
  123.   Advanced SFS Driver Options
  124.         Various advanced options such as how to mount SFS volumes
  125.         at startup so that they are automatically available when the
  126.         system is booted, and customzing the SFS driver user
  127.         interface.
  128.   Changing the Characteristics of an SFS Volume
  129.         How to change various characteristics of an SFS volume such
  130.         as the password, volume name, and serial number, and how to
  131.         delete SFS volumes.
  132.   Sharing SFS Volumes Between Multiple Users
  133.         How to securely share a single encrypted SFS volume between
  134.         multiple users.
  135.   Creating Compressed SFS Volumes
  136.         How to create a compressed drive inside a normal SFS volume
  137.   WinSFS - Using SFS with Windows
  138.         An overview of the Windows version of SFS.
  139.   Command Summary
  140.         A summary of the commands available with the various SFS
  141.         programs.
  142.   Incompatibilities
  143.         Comments on unusual hardware and software combinations which
  144.         may create problems for SFS.
  145.   Authentication of SFS Software
  146.         How to verify that the SFS distribution you have is indeed the
  147.         real thing.
  148.   Applications
  149.         Various applications and uses for SFS.
  150.   The Care and Feeding of Passwords
  151.         Details on how to chose and handle a password to protect
  152.         an SFS volume.
  153.   Other Software
  154.         An overview of other available security software and the
  155.         weakness and problems present in it.
  156.   Data Security
  157.         Various issues in data security which should be taken into
  158.         consideration when using SFS and similar encryption software.
  159.   Politics
  160.         A discussion on the politics of cryptography, the right to
  161.         privacy, and some of the reasons why SFS was written.
  162.   Security Analysis
  163.         An analysis of the level of security offered by SFS and
  164.         some possible attacks on it.
  165.   An Introduction to Encryption Systems
  166.         A brief introduction to encryption systems with an emphasis
  167.         on the methods used in SFS.
  168.   Design Details
  169.         Various in-depth design details not covered in the security
  170.         analysis.
  171.   SFS Disk Volume Layout
  172.         Details on the disk layout used by SFS.
  173.   Interfacing with SFS
  174.         How to control the SFS driver through software.
  175.   Interfacing with mountsfs
  176.         How to control the mountsfs program from external software such
  177.         as graphical front-ends.
  178.   Selected Source Code
  179.         A walkthrough of selected portions of the source code to allow
  180.         verification and help implementors.
  181.   Future Work
  182.         Various enhancements which may be incorporated into future
  183.         versions of SFS.
  184.   Recommended Reading
  185.         A short list of recommended reading material for those wishing
  186.         to know more about the design of SFS and encryption in general.
  187.   Using SFS
  188.         Conditions and terms for use of SFS.
  189.   Credits
  190.   Warranty
  191.  
  192.  
  193. Terminology
  194. -----------
  195.  
  196. Throughout this document a number of specialised terms are used to describe the
  197. operation of the SFS encryption software.  This section provides a brief
  198. explanation of the terms used.  Experienced users can skip this material and go
  199. directly to the "Loading the SFS Driver" section below.
  200.  
  201.   Disk volume:
  202.  
  203.     An individual logical disk drive, volume, partition, or filesystem.  A
  204.     single physical hard disk can (and usually does) contain more than one
  205.     volume on it.  Under DOS, each of these volumes is assigned its own drive
  206.     letter and appears as a separate drive, even though they all reside on the
  207.     same physical hard disk.  Thus a system might have a single 128MB hard disk
  208.     which contains four 32MB volumes accessed by the drive letters C:, D:, E:,
  209.     and F:.
  210.  
  211.     This system is rather confusing and dates back fifteen to twenty years. SFS
  212.     refers to these volumes by name rather than an arbitrary letter, so that
  213.     the volumes might be called "Encrypted data", "Personal correspondence", or
  214.     "Accounts receivable, March 1993".  Unfortunately once SFS has set up the
  215.     volume for DOS to access, it's back to the old F: to identify your data.
  216.  
  217.   Password, key:
  218.  
  219.     The password or encryption key is used to protect the data on an encrypted
  220.     volume.  Despite its name, a password can (and should) be more than just a
  221.     single word.  The SFS software will accept up to 100 characters of
  222.     password, so that perhaps the term "passphrase" would be more appropriate.
  223.  
  224.     For maximum security, each volume should be protected by its own unique
  225.     password.  The SFS software takes the password for a volume, adds extra
  226.     keying information to it, and converts the result into an encryption key
  227.     which is used to encrypt and decrypt data on a given volume.  Great care
  228.     should be taken in the choice of passwords and in keeping them secret. More
  229.     details on this are given in the section "The Care and Feeding of
  230.     Passwords" below.
  231.  
  232.   Device driver:
  233.  
  234.     A device driver is a special piece of software which is used by the
  235.     operating system to access hardware which it wasn't designed to.  Unless
  236.     the device driver is loaded, the operating system generally won't recognise
  237.     that a piece of hardware even exists.  Even the computer's monitor,
  238.     keyboard, and disk drives are accessed through device drivers, although
  239.     their presence is hidden by the operating system.
  240.  
  241.     An example of a visible device driver is the one used to handle a mouse.
  242.     Networked disk drives may be accessed through a device driver.  RAM disks
  243.     are implemented as device drivers.  CDROM drives are handled via a device
  244.     driver.  Finally, encrypted SFS volumes are accessed through a device
  245.     driver.
  246.  
  247.   Mount point:
  248.  
  249.     The locations provided by the SFS driver for mounting encrypted volumes -
  250.     in other words the number of encrypted volumes which can be accessed by the
  251.     driver at any one time.  By default the driver provides one mount point,
  252.     which means one encrypted volume can be accessed through it at any given
  253.     time.  The exact number of mount points can be specified when the SFS
  254.     driver is loaded.
  255.  
  256.  
  257. Quick Start
  258. -----------
  259.  
  260. This section contains a condensed version of the next three sections and allows
  261. a quick start for SFS.  Although it is recommended that the full text be read,
  262. it should be possible to install and use a minimal SFS setup using only the
  263. quick-start information.
  264.  
  265. Initially, the SFS driver must be loaded by adding an entry for it to the
  266. CONFIG.SYS file.  For example if the SFS.SYS driver was located in the DOS
  267. directory on drive C: the following line should be added to the CONFIG.SYS
  268. file:
  269.  
  270.   DEVICE=C:\DOS\SFS.SYS
  271.  
  272. Alternatively, the DEVICEHIGH option can be used to load the driver into high
  273. memory under those versions of DOS which support it.  The system should now be
  274. rebooted to make sure the driver is installed.
  275.  
  276. The use of the SFS driver is covered in more detail in the sections "Loading
  277. the SFS Driver" and "Advanced SFS Driver Options" below.
  278.  
  279. Once the driver is loaded, the encrypted volume can be created with the "mksfs"
  280. program.  This is run with the letter of the drive to encrypt, and the name of
  281. the encrypted volume preceded by the "vol=" option.  For example to encrypt the
  282. E: drive to create a volume with the name "Encrypted disk", the command would
  283. be:
  284.  
  285.   mksfs "vol=Encrypted volume" e:
  286.  
  287. Note that that "vol=..." option is quoted, as the volume name contains a space.
  288. Volume names without a space don't need to be quoted.
  289.  
  290. mksfs will confirm that the given drive is indeed the one to be encrypted, and
  291. then ask for an encryption password of between 10 and 100 characters.  After
  292. asking for the password a second time to confirm it, it will encrypt the drive.
  293. This will take a few minutes, and the program will display a progress bar as
  294. the encryption takes place.
  295.  
  296. There are a great many options and special safety checks built into mksfs to
  297. ensure no data is accidentally destroyed, and it is recommended that the
  298. section "Creating an SFS Volume" is at least glanced through to provide an
  299. overview of the functioning of mksfs before it is run.
  300.  
  301. Once the encrypted volume has been created, it can be mounted with the
  302. "mountsfs" utility.  Mounting a volume makes it available to DOS as a normal
  303. disk volume, with all encryption being done transparently by the SFS driver.
  304. Like mksfs, mountsfs must be told the encrypted volume's name in order to
  305. access it.  The full name doesn't need to be used, mountsfs will accept any
  306. part of the name in upper or lower case.  Using the name from the previous
  307. example, the command to mount the volume would be:
  308.  
  309.   mountsfs vol=encrypt
  310.  
  311. mountsfs will match the partial name "encrypt" with the full volume name
  312. "Encrypted volume", ask for the encryption password for the volume, and mount
  313. it.  The volume will now be accessible as a normal DOS drive.
  314.  
  315. More details on the use of mountsfs are contained in the section "Mounting an
  316. SFS Volume" below.  Other methods for mounting volumes are given in the section
  317. "Advanced SFS Driver Options" below.
  318.  
  319.  
  320. Loading the SFS Driver
  321. ----------------------
  322.  
  323. The SFS device driver SFS.SYS or SFS486.SYS can be loaded in the usual manner
  324. by specifying it in the CONFIG.SYS file:
  325.  
  326.   DEVICE=[drive][path]SFS.SYS [/SILENT] [/UNITS=n] [/DRDOS] [/NOXMS]
  327.                               [/PROMPT=xxxx] [/READONLY] [/READWRITE]
  328.                               [/AUTOMOUNT=nnnn] [/HOTKEY=xxxx] [/TIMEOUT=nn]
  329.  
  330. It can also be loaded high under those versions of DOS which support this with:
  331.  
  332.   DEVICEHIGH=[drive][path]SFS.SYS [/SILENT] [/UNITS=n] [/DRDOS] [/NOXMS]
  333.                                   [/PROMPT=xxxx] [/READONLY] [/READWRITE]
  334.                                   [/AUTOMOUNT=nnnn] [/HOTKEY=xxxx] [/TIMEOUT=nn]
  335.  
  336. The SFS486.SYS driver is loaded the same way.  This driver contains code for
  337. '486 and higher processors, and is about 400 bytes smaller and 5 percent
  338. faster.
  339.  
  340. The arguments to SFS are not case-sensitive, and can be given in upper or lower
  341. case.  For example if your copy of the SFS.SYS driver was located in the DOS
  342. directory on drive C: you would add the following line to your CONFIG.SYS file:
  343.  
  344.   DEVICE=C:\DOS\SFS.SYS
  345.  
  346. The driver will only work on systems with an 80386 or higher processor.  This
  347. is because the en/decryption code (over 10,000 lines of assembly language) has
  348. to have a 32-bit processor to run on.  Virtually all recent PC's fulfil these
  349. requirements, and a 16-bit version would both be much slower and require about
  350. three times as much code space to run in[1].
  351.  
  352. If an attempt is made to load SFS.SYS on a machine which doesn't have a 32-bit
  353. CPU, the message:
  354.  
  355.   Error: Processor must be 386 or higher
  356.  
  357. will be displayed and SFS will de-install itself.
  358.  
  359. The drive currently recognises ten options, /AUTOMOUNT, /DRDOS, /HOTKEY,
  360. /NOXMS, /PROMPT, /READONLY, /READWRITE, /SILENT, /TIMEOUT, and /UNITS:
  361.  
  362.   The /AUTOMOUNT option is used to mount SFS volumes automatically at startup,
  363.   and is explained in more detail in the section "Advanced SFS Driver Options"
  364.   below.
  365.  
  366.   The /DRDOS option is needed when running the SFS driver under Novell/DR-DOS
  367.   instead of MS-DOS or an MS-DOS derivative.  This tells the driver to use
  368.   Novell/Digital Researches way of accessing disk volumes larger than 32MB,
  369.   which is slightly different from the method other versions of DOS use.
  370.  
  371.   The /HOTKEY option is used to specify the quick-unmount hotkey which can be
  372.   used to instantly unmount all currently mounted SFS volumes, and is explained
  373.   in more detail in the sections "Mounting an SFS Volume" and "Advanced SFS
  374.   Driver Options" below.
  375.  
  376.   The /NOXMS option is used to disable SFS buffering data in extended memory.
  377.   By default SFS will allocate a 64K write buffer to speed up disk writes.  If
  378.   no extended memory is available or if the /NOXMS option is used, SFS will
  379.   print:
  380.  
  381.     Warning: No XMS buffers available, slow writes will be used
  382.  
  383.   The driver will then switch to using slow disk writes which are about half as
  384.   fast as normal reads and writes.  These are necessary to fix buffering
  385.   problems in MSDOS 6.x and some disk utilities.  If an extended memory buffer
  386.   is used, the slow writes aren't necessary.
  387.  
  388.   The /PROMPT option is used in conjunction with the /AUTOMOUNT option to
  389.   display a user-defined prompt when asking for the password for the SFS volume
  390.   to be automounted, and is explained in more detail in the section "Advanced
  391.   SFS Driver Options" below.
  392.  
  393.   The /READONLY and /READWRITE options are used in conjunction with the
  394.   /AUTOMOUNT option to disable write access to the volumes being mounted.
  395.   The /READONLY option disables write access to all following automounted
  396.   volumes; the /READWRITE option enables write access to all following
  397.   automounted volumes.  The default setting is to allow read and write access
  398.   to all volumes.  More details on read-only access to SFS volumes is given in
  399.   the section "Mounting an SFS Volume" below.
  400.  
  401.   The /SILENT option can be used to suppress the printing of the start-up
  402.   message.
  403.  
  404.   The /TIMEOUT option is used to specify the time in minutes after which SFS
  405.   volumes are automatically unmounted if they haven't been accessed during that
  406.   time, and is explained in more detail in the sections "Mounting an SFS
  407.   Volume" and "Advanced SFS Driver Options" below.
  408.  
  409.   The /UNITS=n option specifies the number of mount points (or number of disk
  410.   volumes) the driver will provide, where `n' is the number of units and can
  411.   range from 1 to 5.  Each drive mount point requires 384 bytes of extra memory
  412.   storage.  By default, the driver allocates storage for one mount point.
  413.  
  414. As an example, to suppress the printing of the start-up message and to specify
  415. that the driver should handle up to three encrypted volumes, the previously
  416. given example for loading the driver would be changed to:
  417.  
  418.   DEVICE=C:\DOS\SFS.SYS /SILENT /UNITS=3
  419.  
  420. The number of mount points can range from 1 to 5.  If a number outside this
  421. range is specified, the message:
  422.  
  423.   Error: Invalid number of units specified
  424.  
  425. will be displayed and SFS will de-install itself.  Finally, if an invalid
  426. option is given (such as a misspelled or badly-formatted parameter) SFS will
  427. again de-install itself after displaying:
  428.  
  429.   Error: Unknown parameter specified
  430.  
  431. All the remaining driver options are covered in the section "Advanced SFS
  432. Driver Options" below.
  433.  
  434. If the driver installs successfully and unless the /SILENT option is used it
  435. will, after displaying a general message showing that it has been installed,
  436. indicate which which drive will be used as the encrypted one.  For example if
  437. the encrypted drive is made available as E:, the message would be:
  438.  
  439.   Encrypted volume will be mounted as drive E:
  440.  
  441. This indicates that once an encrypted volume is mounted, DOS will access it as
  442. drive E:  If more than one mount point is specified, the range of drives which
  443. will be made available is shown, so that if the option /UNITS=3 were used the
  444. message would be:
  445.  
  446.   Encrypted volumes will be mounted as drives E: - G:
  447.  
  448. When installed SFS consumes around 6.5K of memory, most of which is encryption
  449. code.
  450.  
  451. Footnote [1]: There have been calls for 286 versions of SFS from countries in
  452.               which 386+ machines are still difficult to obtain.  There may
  453.               eventually be a 16-bit version, although at the current rate by
  454.               the time it's written everyone will be using Pentiums anyway.
  455.  
  456.  
  457. Creating an SFS Volume
  458. ----------------------
  459.  
  460. Before SFS can use an encrypted volume, it must be converted from a normal DOS
  461. volume to an encrypted SFS one.  The program which performs this task is mksfs,
  462. (Make Secure Filesystem) and is very loosely patterned after the Unix mkfs
  463. utility.  mksfs takes a standard DOS volume (which may be either freshly
  464. formatted or may already contain files) and turns in into an encrypted SFS
  465. volume.  The encryption process is non-destructive, so in general no data will
  466. be lost.  The only case in which a data loss could occur is if there is a power
  467. cut while the volume is being encrypted (this means that power to the system is
  468. removed as the disk is being written to, which would cause problems under
  469. virtually any software).  If the data being encrypted is extremely valuable or
  470. there is a risk of a power cut occurring, the volume should be backed up
  471. completely before being encrypted.  This should only be necessary in
  472. exceptional circumstances, however.
  473.  
  474. If used on a fixed disk, mksfs will encrypt an entire disk partition rather
  475. than individual files.  This is necessary because an SFS partition may contain
  476. a DOS filesystem, or an OS/2 one, or a HPFS one, or an NTFS one, or any one of
  477. a dozen other possible filesystems.  However, many people have only a single
  478. large partition on their hard drive which is used entirely for DOS, which would
  479. require a complete backup of the partition before the FDISK utility can be used
  480. to create two smaller partitions, followed by a restore of the backup to one of
  481. the new partitions.  This problem can be avoided by using one of several
  482. programs which will split an existing partition into two smaller partitions.
  483. One of them is FIPS, currently at version 0.9 and available as
  484. garbo.uwasa.fi:/pc/diskutil/fips09.zip and from all garbo mirror sites.  This
  485. allows a partition to be nondestructively split into two smaller partitions,
  486. one of which can be used as an SFS volume.
  487.  
  488. If the hardware or software setup you are using is somewhat unusual (for
  489. example you have drives which are compressed with DoubleSpace or Stacker, or
  490. you have unusual drive hardware which needs special software like SpeedStor to
  491. manage it), you should read the section "Incompatibilities" below.  In
  492. addition, mksfs may, during normal operation, trigger a number of virus
  493. detectors which monitor access to certain critical disk and memory areas which
  494. software would not normally access.  Finally, mksfs will check whether it is
  495. being run under Quarterdeck's DesqView or Microsoft Windows, as it should in
  496. general not be run while DesqView, Windows, or some other multitasking software
  497. is running.  Since mksfs takes an entire disk volume and encrypts it sector by
  498. sector, any other software which tries to simultaneously access the volume
  499. while mksfs is running will come to grief.  If mksfs detects that it is being
  500. run under either DesqView or Windows, it will display a warning message with an
  501. option to quit and re-run it from DOS only.  Only if there is no chance that
  502. any other program will access the disk volume being encrypted is it safe to run
  503. mksfs under multitasking software.
  504.  
  505. The mksfs program is run in the following manner:
  506.  
  507.   mksfs [-c] [-o] [-t] [serial=<serial number>] [multiuser]
  508.         [vol=<volume name>] <drive>
  509.  
  510. Since all arguments are named, they can be given in any order.  The order shown
  511. here is merely an example.
  512.  
  513. The -c and -t options are present to allow integrity checks on the SFS
  514. encryption code and the operation of mksfs itself, and are covered in more
  515. detail in the sections "Incompatibilities" and "Security Analysis"
  516. respectively.
  517.  
  518. The drive specifies the DOS drive letter for which the SFS volume will be
  519. created.  For example to create an SFS volume on the disk currently in the A:
  520. drive the command would be:
  521.  
  522.   mksfs a:
  523.  
  524. It is recommended that each SFS volume be given a unique name for
  525. identification purposes.  Although it is possible to create an unnamed (or
  526. anonymous) volume, this practice is strongly discouraged for fixed disks which
  527. may contain multiple SFS volumes.  If the volumes are anonymous then the user
  528. has no easy way of informing SFS which one it should be accessing apart from
  529. using the automount option with the SFS driver, which is explained in more
  530. detail in the section "Advanced SFS Driver Options" below.  mksfs will check
  531. for the creation of anonyous volumes on fixed disks and print a warning if this
  532. occurs.
  533.  
  534. The volume name can be specified with the `vol=' option.  For example if the
  535. volume name "Secure disk volume" was to be created on drive D: then the create
  536. command would be:
  537.  
  538.   mksfs "vol=Secure disk volume" d:
  539.  
  540. Note that the volume name, which in this case contains spaces, has been quoted.
  541. This is necessary since DOS will break apart the name into separate words if it
  542. contains spaces.  If the name is a single word, no quoting is necessary.
  543.  
  544. The volume serial number can be specified with the `serial=' option.  If no
  545. serial number is provided, mksfs will generate one itself.  In normal usage
  546. there is no need for the user to specify a volume serial number, but the option
  547. has been provided just in case.  If a serial number is specified, it should be
  548. a unique value since SFS may use it to distinguish between different volumes.
  549. If mksfs is left to chose the serial number it will automagically use a unique
  550. value.  The serial number is independant of the volume automount identifier,
  551. which is explained in the section "Advanced SFS Driver Options" below.
  552.  
  553. A special option for removable disks only is the `-o' option.  This is
  554. necessary because some (mostly extinct) variants of DOS treat removable disks
  555. in a peculiar manner.  If mksfs cannot determine the disk format due to the
  556. disk having been created with a strange DOS version, it will exit with the
  557. error message[1]:
  558.  
  559.   Error: Disk information reports unusual disk format, won't process disk.
  560.          Use `-o' option to override this check.
  561.  
  562. If mksfs is re-run, this time with the `-o' option, it will perform a check on
  563. secondary format information stored on the disk.  If the information checks
  564. out, it will report (assuming the disk being checked is a 1.2 MB 5 1/4" disk):
  565.  
  566.   Warning: Disk information reports unusual disk format, performing check on
  567.            secondary information...
  568.  
  569.            Disk appears to be in 1.2 MB DSHD format
  570.  
  571. If mksfs still can't be sure of the disk format, it will exit with an error
  572. message.
  573.  
  574. If multiple-user access to the volume is required, the `multiuser' option
  575. should be set to enable this.  This option records extra information which may
  576. later be edited with the adminsfs program to allow other users access to the
  577. volume.  More details on multiuser SFS volumes are given in the section
  578. "Sharing SFS Volumes Between Multiple Users" below.
  579.  
  580. If the `multiuser' option is used, mksfs will warn:
  581.  
  582.   Warning: You have specified that access to the volume for multiple users
  583.            be enabled.  Are you sure you want to do this [y/n]
  584.  
  585. At this point a response of 'Y' will continue and a response of 'N' will exit
  586. the program.
  587.  
  588. The program will now check to see whether the chosen volume name and serial
  589. number conflict with the name and serial number of an existing volume.  If both
  590. the volume name and serial number conflict, this will make future manipulation
  591. of the volume difficult as there is no real way to uniquely identify it, and
  592. mksfs will exit with the error message:
  593.  
  594.   Error: An SFS volume with the given name and serial number already exists.
  595.          Either a new name or serial number should be chosen, or no serial
  596.          number at all specified, in which case mksfs will chose a unique
  597.          serial number for the new volume.
  598.  
  599. An alternative possibility, if the conflicting volume is on removable media, is
  600. to temporarily remove the disk from the drive until mksfs has been run.
  601. However this still creates the problem of accessing the volume in the future.
  602. A much easier solution is to either chose unique volume names or to let mksfs
  603. chose the volume serial number - it will always chose a number which doesn't
  604. conflict with an existing volume serial number.
  605.  
  606. If only the volume name clashes, mksfs will warn:
  607.  
  608.   Warning: An SFS volume with the given name already exists.  Are you sure
  609.            you want to create a new volume with the same name [y/n]
  610.  
  611. At this point a response of 'Y' will continue and a response of 'N' will exit
  612. the program.
  613.  
  614. If an anonymous volume is to be created on a fixed disk, mksfs will warn:
  615.  
  616.     Warning: You have not specified a name for the volume to be created.
  617.              This may make future manipulation of the volume difficult.  Are
  618.              you sure you want to create an anonymous volume [y/n]
  619.  
  620. At this point a response of 'Y' will continue and a response of 'N' will exit
  621. the program.
  622.  
  623. If it's really necessary, these checks can be overridden by using chsfs to
  624. change the volume's characteristics after it has been created.  Unlike mksfs,
  625. chsfs is not particular about what the volume name and serial number are set
  626. to, as it assumes that the user knows what they are doing when they use chsfs.
  627.  
  628. Once the preliminary processing has been done, mksfs will, in the case of a
  629. fixed disk, scan it for the volume which is to be converted into an SFS one.
  630. Along the way it will perform various checks on the volume to make sure the
  631. volume is accessible, is a standard DOS volume, is not marked as being bootable
  632. (booting off an encrypted volume is somewhat difficult), is not the one
  633. currently in use, and can be converted.  Note that the bootability check may
  634. not be completely foolproof, as some disk managers perform strange tricks with
  635. bootable volumes to handle multiple operating systems on the same disk.
  636.  
  637. mksfs performs an additional check if the volume specified for encryption is
  638. the C: drive, which is usually the primary DOS drive and which should under
  639. normal circumstances never be encrypted.  If an attempt to encrypt the C: drive
  640. is made, mksfs will prompt:
  641.  
  642.   Warning: You have chosen to encrypt the C: drive which is usually the
  643.            primary DOS drive.  Are you sure you want to do this [y/n]
  644.  
  645. At this point a response of 'Y' will continue and a response of 'N' will exit
  646. the program.
  647.  
  648. If the various checks succeed, it will display an informational message giving
  649. details on the volume to be created.  An example of the information displayed
  650. for a fixed drive might be:
  651.  
  652.   Volume `Encrypted disk' will be created on fixed drive D:
  653.   This drive has a capacity of 75.2 MB and is labelled `Accounting'
  654.   Are you sure you want to encrypt this volume [y/n]
  655.  
  656. If the volume is the one to be converted, a response of 'Y' will proceed with
  657. the creation of the SFS volume, and a response of 'N' will abort the operation.
  658.  
  659. It is vitally important that the information printed by mksfs is checked before
  660. a `yes' response is given.  Due to the vast array of unusual disk systems,
  661. networked drives, compressed disks, device drivers, and other strangeness, it
  662. could be that mksfs and DOS disagree on which volume is to be encrypted.  In
  663. addition it is very easy to specify the wrong drive accidentally when running
  664. mksfs.  Although this situation will hopefully never occur, it is nevertheless
  665. a good idea to stop for a second and make absolutely certain that the volume
  666. being encrypted is the one which should be encrypted.  Treat mksfs the same way
  667. you would treat the DOS `format' command.
  668.  
  669. For a floppy drive the information is slightly different:
  670.  
  671.   Volume `Secure backup' will be created on 1.44MB disk in drive B:
  672.  
  673. No yes/no prompt is given for removable disks since they contain far less
  674. information than fixed disk volumes, and will typically be freshly-formatted,
  675. blank diskettes.  This allows the quick bulk encryption of quantities of
  676. diskettes without having to answer the same question for each disk.  If
  677. necessary the encryption operation can be aborted at the password-entry stage.
  678.  
  679. mksfs will now check the volume to be encrypted for bad sectors.  Most newer
  680. fixed disks will automatically map out bad sectors (if there are any) and use
  681. sectors from spare space on the disk instead (all this is invisible to the
  682. system software and is done internally by the drive itself).  However older
  683. drives may still explicitly report bad sectors.  The presence of bad sectors on
  684. a disk may also indicate a virus infection, or may be used by certain kinds of
  685. (hopefully extinct) copy-protection schemes.  If mksfs finds any of these, it
  686. will print an advisory message:
  687.  
  688.   Warning: This disk contains bad sectors which won't be encrypted by SFS.
  689.  
  690. If the disk being encrypted is a floppy disk, mksfs will print a message
  691. recommending that another disk be used instead.  If the data is valuable enough
  692. to need encryption, then it should really be stored on an error-free medium
  693. rather than its loss risked with defective floppy disks:
  694.  
  695.   Warning: This disk contains bad sectors.  Use of damaged disks is not
  696.            recommended as recovery of encrypted data could be difficult if
  697.            further bad sectors develop.  Are you sure you want to encrypt
  698.            this disk [y/n]
  699.  
  700. At this point a response of 'Y' will continue and a response of 'N' will exit
  701. the program.  SFS will encrypt the disk, but will skip any sectors marked as
  702. being defective.  A similar message will be printed if any bad sectors are
  703. found during the encryption process.  Note that if further bad sectors develop
  704. on the floppy disk, recovery of the data stored in the bad sectors will be
  705. difficult.  It is strongly recommended that only error-free floppy disks be
  706. used with SFS[2].
  707.  
  708. Once the disk checks have been completed, mksfs will ask for a password to use
  709. when encrypting the volume.  This password can range in length from 10 to 100
  710. characters, and should be made up of a complete phrase or sentence rather than
  711. just a single word (mksfs will complain if it thinks the password is of an
  712. insecure form and request that another one be used).  More details on choosing
  713. a password are given in the section "The Care and Feeding of Password" below.
  714.  
  715. When asking for the password, mksfs will prompt:
  716.  
  717.   Please enter password (10...100 characters), [ESC] to quit:
  718.  
  719. At this point a password in the given length range can be entered.  For
  720. security reasons the password is not echoed to the screen.  Any typing errors
  721. when entering the password can be corrected with the backspace key.  The Esc
  722. key can be used to quit.  The software will check for a password longer than
  723. the maximum of 100 characters or an attempt to backspace past the start of the
  724. password, and beep a warning when either of these conditions occur.
  725.  
  726. Once the password has been entered, mksfs will again prompt:
  727.  
  728.   Please reenter password to confirm, [ESC] to quit:
  729.  
  730. This confirmation is necessary to eliminate any problems with hitting an
  731. incorrect key when entering the password the first time.  Note that every
  732. single letter, space, and punctuation mark in the password is critical.  Making
  733. a single mistake (getting a letter mixed up, typing a letter in upper case
  734. instead of lower case, or missing a punctuation mark) will completely change
  735. the encryption key.  For this reason, mksfs performs a double-check on the
  736. password to ensure it really is the correct one.
  737.  
  738. Once the password has been entered, there is a brief delay while mksfs performs
  739. the complex processing needed to turn it into a key suitable for the encryption
  740. system.  When this has been completed, mksfs will begin converting the disk.
  741. As it processes the volume, it prints a progress bar going from 0% complete to
  742. 100% complete.  The conversion process will take a few minutes on most disks,
  743. and is somewhat slower than a standard disk formatting procedure which only
  744. writes a very small amount of data to the start of the disk, whereas mksfs has
  745. to read, encrypt, and write the entire disk volume.
  746.  
  747. As the conversion progresses, the progress bar will gradually fill up until it
  748. shows that the conversion is complete.  Once this has finished, mksfs will exit
  749. with the message:
  750.  
  751.   Encrypted volume created.  You can now mount it with the `mountsfs' command.
  752.  
  753. If the volume is created on a fixed disk, additional information about mounting
  754. it using the SFS driver's automount option will be given (this is explained in
  755. more detail in the section "Advanced SFS Driver Options" below).
  756.  
  757. If the volume is created on a removable disk, mksfs will ask:
  758.  
  759.   Do you wish to encrypt another disk [y/n]
  760.  
  761. At this point a response of 'Y' will continue and a response of 'N' will exit
  762. the program.  If the 'Y' response is chosen, mksfs will prompt:
  763.  
  764.   Please insert a new disk in the drive and press a key when ready
  765.  
  766. and then repeat the disk encryption cycle.
  767.  
  768. The encrypted volume is now ready to be used.  If it was created on a fixed
  769. disk, DOS will still think the volume it was created on is a DOS one rather
  770. than an encrypted SFS one.  It is strongly recommended that you reboot your
  771. machine at this point to clear any memories of the old volume from the system,
  772. as any attempt by DOS to access the encrypted volume as a normal DOS volume
  773. will cause it to become very confused.
  774.  
  775. Footnote [1]: Certain boot sector viruses also change the information needed by
  776.               mksfs, so mksfs printing this message may be an indication of a
  777.               viral infection.
  778.  
  779. Footnote [2]: Although SFS has been written so that if any data does become
  780.               corrupted, only the corrupted sector and no others will be lost,
  781.               if data which is important to the operating system (such as a
  782.               directory or a file allocation table) is lost, the damage may
  783.               (just as it would for a normal non-encrypted disk) be more
  784.               significant.  In this case any standard disk-recovery program can
  785.               be used to make repairs, just as with a normal DOS disk.
  786.  
  787.  
  788. Mounting an SFS Volume
  789. ----------------------
  790.  
  791. When the operating system first starts, it finds all disk volumes it can
  792. recognise and automatically makes them available as different logical drive
  793. letters.  However it can't do anything with encrypted SFS volumes, and so they
  794. are effectively invisible to it.  In order to make them visible, they must be
  795. mounted using the mountsfs program.  Operating systems such as Unix mount
  796. filesystems in this manner (in fact the general feel of mountsfs is vaguely
  797. like the Unix filesystem mount utility).
  798.  
  799. When the operating system mounts a disk volume, it uses the rather primitive
  800. mechanism of assigning a letter of the alphabet to it and referring to the
  801. drive by that letter.  SFS, on the other hand, refers to the volume by the name
  802. given when the volume is created with mksfs rather than some arbitrary letter
  803. (although volumes in removable drives can optionally be referred to by the
  804. driver letter).  Therefore if the encrypted volume was named "Secure disk
  805. volume", mountsfs would mount "Secure disk volume" rather than, say, "E:".  A
  806. fixed disk can contain multiple encrypted volumes, mountsfs will chose the
  807. appropriate one based on the volume name.  When searching for volumes to mount,
  808. all fixed disks are checked before any removable disks are checked, so that a
  809. volume with a given name on a fixed disk would override a volume of the same
  810. name on a floppy disk.
  811.  
  812. Once the volume is mounted, DOS will still refer to it by a drive letter as
  813. usual (there's only so much the SFS software can do), so that "Secure disk
  814. volume" will, after being mounted with SFS, appear as another DOS drive, for
  815. example E:.
  816.  
  817. With removable disks it may sometimes be desirable to refer to the volume by
  818. the drive it is in rather than the volume name.  In this case the drive can be
  819. specified by the usual letters A: or B:, and the actual volume name will be
  820. ignored.  As before, once the disk is mounted with SFS, the volume will appear
  821. as another DOS drive, for example E:.  If the disk is accessed as E:, the SFS
  822. driver will encrypt and decrypt data being written and read.  If the disk is
  823. accessed as A: or B:, DOS will either display garbage or report a general
  824. failure error as it doesn't understand the encrypted disk. The A: or B: drive
  825. letters can still be used to read normal DOS disks, however.  In order to
  826. prevent accidental overwriting of disks, the SFS driver will automatically
  827. unmount a volume if it detects that a disk change has occurred since the last
  828. time it accessed the drive.
  829.  
  830. The mountsfs program is run in the following manner:
  831.  
  832.   mountsfs [+r] [+rw] [status] [unmount] [info] [information]
  833.            [hotkey=<Ctrl>-<Alt>-<LeftShift>-<RightShift>-<letter>]
  834.            [timeout=<timeout>] [user=<user name>] [userfile=<user file>]
  835.            [vol=<volume name>] [<drive>]
  836.  
  837. Since all arguments are named, they can be given in any order.  The order shown
  838. here is merely an example.
  839.  
  840. When mountsfs starts, it first performs a number of checks on the internal
  841. status of the SFS driver.  If it can't find the driver, it will exit with the
  842. error message:
  843.  
  844.     Error: Cannot find SFS driver
  845.  
  846. This is due to the driver not being loaded, either because it is not being
  847. specified in the CONFIG.SYS file, or because there was some error when it was
  848. loaded and it de-installed itself.  More information on this is given in the
  849. section "Loading the SFS Driver" above.
  850.  
  851. If the driver reports a general internal consistency check failure or a
  852. consistency check failure for a particular drive unit (in this case drive F:),
  853. mountsfs will exit with the error message:
  854.  
  855.     Error: SFS driver internal consistency check failed
  856.  
  857. or:
  858.  
  859.     Error: SFS driver consistency check failed for unit F:
  860.  
  861. A driver check failure is generally due to some other program or system
  862. software corrupting the driver's internal state.  Possible solutions to this
  863. problem can be found in the section "Incompatibilities" below.
  864.  
  865. In general the volume name would be specified with the `vol=' option.  For
  866. example if the volume name was "Secure disk volume" then the mount command
  867. would be:
  868.  
  869.   mountsfs vol=secure
  870.  
  871. The volume name can be in upper or lower case, and the full name need not be
  872. given.  mountsfs will match whatever part of the name is given to any SFS
  873. volume names found until it finds a match.  The SFS volumes are checked in the
  874. same order as they are displayed with the `info' or `information' command.
  875.  
  876. Alternatively, if the SFS volume to be accessed is on a removable disk, the
  877. drive letter can be specified instead of the volume name.  For example if the
  878. disk drive was A: then the command to mount whatever volume it contained would
  879. be:
  880.  
  881.   mountsfs a:
  882.  
  883. mountsfs will not mount volumes using the automount ID, as this is reserved for
  884. use with volumes mounted when the SFS driver is loaded.  More information on
  885. this is given in the section "Advanced SFS Driver Options" below.
  886.  
  887. In order to find all available SFS volumes, the `info' option can be used.
  888. This will by default search the system for available SFS volumes and print a
  889. list of the volume name, creation date, size, and whether the volume is
  890. currently mounted. For example on a system with two SFS volumes the output from
  891. `mountsfs info' might be:
  892.  
  893.     Date     Size   Type Mount status  Volume Name
  894.   -------- -------- ---- ------------- ----------------------------------------
  895.   01/11/93  Floppy  DOS    Unmounted   Data backup
  896.   06/09/93  10.0 MB DOS  Mounted as E: Personal financial records
  897.   12/04/93  42.5 MB DOS    Unmounted   Encrypted data disk
  898.  
  899. This shows three SFS volumes, an unmounted volume in a floppy drive containing
  900. backup data, a smaller one on a fixed disk containing personal financial
  901. records which is currently mounted as drive E:, and a larger one containing
  902. general encrypted data which is currently unmounted.  Note that removable media
  903. is treated in a special manner and the exact disk size is indeterminate as the
  904. media may change at any time.  The volume creation date is formatted according
  905. to the country setting on the machine being used, so that the datestamp is
  906. day/month/year in Europe and related countries, month/day/year in the US and
  907. related countries, and year/month/day in Japan.  Both volumes shown here are
  908. DOS volumes, but future versions of SFS will support other volume types such as
  909. OS/2 HPFS, Windows NTFS, and Linux Unix ones.
  910.  
  911. If more information is desired, the longer "information" form of the command
  912. can be used.  This will display extra information such as the volume serial
  913. number, the automount parameter (see the section "Advanced SFS Driver Options"
  914. below for more information), the volume filesystem type, whether multiuser
  915. volume access is possible, and the volume name character set, as well as the
  916. other information displayed by the usual `mountsfs info' command.  If, in the
  917. previous example, we had used `mountsfs information' instead of `mountsfs info'
  918. the output might have been:
  919.  
  920.   Volume name  : Data backup
  921.   Volume date  : 01/11/93, 10:13:01  Volume serial number  : 1234
  922.   Volume size  : Removable media     Volume filesystem type: DOS
  923.   Mount status : Unmounted           No automount possible
  924.   Multiuser access : Disabled        Volume name char.set  : ISO 646/ASCII
  925.  
  926.   Volume name  : Personal financial records
  927.   Volume date  : 06/09/93, 11:22:19  Volume serial number  : 177545
  928.   Volume size  : 10.0 MB             Volume filesystem type: DOS
  929.   Mount status : Mounted as E:       Automount ID          : 03A12F7B
  930.   Multiuser access : Disabled        Volume name char.set  : ISO 646/ASCII
  931.  
  932.   Volume name  : Encrypted data disk
  933.   Volume date  : 12/04/93, 22:17:00  Volume serial number  : 69231461
  934.   Volume size  : 42.5 MB             Volume filesystem type: DOS
  935.   Mount status : Unmounted           Automount ID          : 42DD2536
  936.   Multiuser access : Enabled         Volume name char.set  : ISO 646/ASCII
  937.  
  938. By default these two command will display information on all available volumes.
  939. If information on an individual volume is required, then the volumes' name or
  940. drive letter can be given in addition to the `info' or `information' option.
  941. To change the previous use of the `info' command to apply only to the volume
  942. named "Data backup", the command might be:
  943.  
  944.   mountsfs info vol=backup
  945.  
  946. and the output would be as follows:
  947.  
  948.     Date     Size   Type Mount status  Volume Name
  949.   -------- -------- ---- ------------- ----------------------------------------
  950.   01/11/93  Floppy  DOS    Unmounted   Data backup
  951.  
  952. The `status' option can be used to check whether any volumes are currently
  953. mounted.  As with the `info' and `informaton' options, by default information
  954. on all mounted SFS volumes is displayed.  If information on an individual
  955. volume is required, then the volumes' name or drive letter can be given in
  956. addition to the `status' option.  Thus the command:
  957.  
  958.   mountsfs status
  959.  
  960. will return a list of the status of the volumes on all mount points, as well as
  961. an indication of the current setting of the quick-unmount hotkey and
  962. auto-unmount time settings (the latter are explained in more detail below),
  963. whereas the command:
  964.  
  965.   mountsfs status f:
  966.  
  967. will return the above status information only on the volume currently mounted
  968. as F:.  An example of the output of the `status' command when run on the setup
  969. shown in the `info' command examples with a total of two mount points available
  970. might be:
  971.  
  972.   SFS volume `Personal financial records' is mounted as drive E:
  973.   Drive F: has no volume mounted
  974.  
  975.   The quick-unmount hotkey is set to `LeftShift-RightShift'.
  976.   The auto-unmount timer is deactivated.
  977.  
  978. The `+r' and `+rw' options specify read and write access to the encrypted
  979. volume.  `+r' allows read-only access and `+rw' allows read and write access.
  980. The default is to allow read/write access.  Note that although mounting an SFS
  981. volume read-only will stop all standard software from writing to it, it may not
  982. stop some malicious programs such as viruses which have been specially written
  983. to attack the SFS driver itself, or which are created specifically to destroy
  984. disk data by bypassing the operating system and accessing the disk hardware
  985. or firmware directly.  The read-only option is provided mainly to stop any
  986. accidental overwriting of valuable data on encrypted volumes.
  987.  
  988. Read-only access can also be specified when an SFS volume is auto-mounted.
  989. More details on this and on auto-mounting volumes are given in the section
  990. "Advanced SFS Driver Options" below.
  991.  
  992. The read/write status of a volume can be changed once it has been mounted by
  993. running mountsfs with only the '+r' or '+rw' option.  This will change the
  994. read/write status of the currently mounted volume as appropriate.  For example
  995. to allow read/write access to the currently mounted SFS volume the command
  996. would be:
  997.  
  998.   mountsfs +rw
  999.  
  1000. If the volume allows multiuser access, only the volume administrator can
  1001. directly mount it in the manner described above.  Normal volume users must
  1002. specify their user name with the `user=<username>' command in addition to the
  1003. usual mount parameters in order to mount the volume[1].  The user name is the
  1004. name under which access is granted by the system administrator.  Like the
  1005. volume name, any portion of the user name can be given and mountsfs will match
  1006. whatever part of the name is given to any user names until it finds a match.
  1007. Users can also specify the name of the file to search for user access
  1008. information using the `userfile=<user file>' command.
  1009.  
  1010. For example if the volume in the previous example allowed multiuser access and
  1011. one of the users granted access to the volume was "Henry Akely", he could mount
  1012. it with the command:
  1013.  
  1014.   mountsfs vol=secure user=henry
  1015.  
  1016. If an attempt to mount a volume with no multiuser access capabilities is made,
  1017. mountsfs will exit with the error message:
  1018.  
  1019.   Error: This volume has multi-user access disabled
  1020.  
  1021. If access information for the given user cannot be found in the user access
  1022. file or files, the program will exit with an error message:
  1023.  
  1024.   Error: Cannot find access information for user `henry'
  1025.  
  1026. An individual users access rights to the volume, as set by the volume
  1027. administrator, may override certain options specified in mountsfs.  More
  1028. details on this, and on the operation of shared SFS volumes as a whole, are
  1029. given in the section "Sharing SFS Volumes Between Multiple Users" below.
  1030.  
  1031. If mountsfs is asked to mount a volume, it will first check to see whether
  1032. there is room to mount it.  If all available mount points are already occupied,
  1033. the program will print:
  1034.  
  1035.   Error: All available drives are allocated - unmount an existing volume first
  1036.  
  1037. and exit.  In this case either an existing volume must be unmounted to free up
  1038. a mount point and allow the new volume to be mounted, or the number of mount
  1039. points must be increased with the /UNITS command when the SFS driver is loaded.
  1040. More details on this are given in the section "Loading the SFS Driver" above.
  1041.  
  1042. If mountsfs is asked to mount a volume, it will search all available disks for
  1043. the named volume (if the volume is accessed by name), or check the removable
  1044. disk for the volume (if the volume is accessed by disk drive letter).  If the
  1045. volume is already mounted, mountsfs will print:
  1046.  
  1047.   Error: Encrypted volume is already mounted
  1048.  
  1049. and exit.  Otherwise, it will print a summary of the volume giving the
  1050. read/write status, the drive type, and the volume name and date if one exists:
  1051.  
  1052.   Volume will be mounted read-only as fixed drive E:.
  1053.   Encrypted volume is `Personal correspondence', created 12/08/93
  1054.  
  1055. Then it will prompt for the encryption password:
  1056.  
  1057.   Please enter password (10...100 characters), [ESC] to quit:
  1058.  
  1059. At this point a password in the given length range can be entered.  For
  1060. security reasons the password is not echoed to the screen.  Any typing errors
  1061. when entering the password can be corrected with the backspace key.  The Esc
  1062. key can be used to quit.  The software will check for a password longer than
  1063. the maximum of 100 characters or an attempt to backspace past the start of the
  1064. password, and beep a warning when either of these conditions occur.  Once the
  1065. password has been entered, mountsfs will process it and reprogram the SFS
  1066. device driver to reflect the change in status.
  1067.  
  1068. If the disk being mounted is a removable one, mountsfs will check that the
  1069. drive being used supports disk change checking.  This is necessary to ensure
  1070. that the wrong disk isn't accidentally accessed by the driver.  If the disk is
  1071. changed without first being unmounted, the SFS driver will automatically
  1072. unmount it the next time an attempt is made to access it[2].  However if the
  1073. drive doesn't support the disk change check (generally only rather old drives
  1074. have this problem), this automatic unmount won't be possible, and mountsfs will
  1075. warn:
  1076.  
  1077.   Warning: The floppy drive this volume is mounted on does not support disk
  1078.            change checking.  This means that great care must be taken to ensure
  1079.            the existing volume is unmounted (using either the `mountsfs' utility
  1080.            or the quick-unmount hotkey) when a new disk is inserted.
  1081.  
  1082. If the drive does not support the disk change check, it is essential that the
  1083. volume be unmounted when the disk is changed.  The easiest way to unmount a
  1084. volume is through the quick-unmount hotkey, which is explained in more detail
  1085. below.
  1086.  
  1087. The `unmount' option is used to unmounts SFS volumes.  This is used to remove
  1088. any access to volumes after any work which requires them has been completed, or
  1089. to free up a mount point so a new volume can be mounted.  If a particular SFS
  1090. volume is contained on a removable disk, it is a good idea to unmount the
  1091. volume if the disk in the drive is changed, although mounting a new volume will
  1092. automatically unmount the old volume.  The unmount operation can also be
  1093. performed using a quick-unmount hotkey which the SFS driver checks for (see
  1094. below).  Like the `status' and `information' command, the `unmount' command can
  1095. either apply to individual mounted volumes which are specified by their drive
  1096. letter, or to all volumes if no drive letter is given.
  1097.  
  1098. Unmounting a volume also signals the SFS driver software to write all data
  1099. still held in system buffers to disk and to erase any information it still
  1100. holds in memory.  It is therefore good practice to always unmount volumes as
  1101. soon as they are no longer in use in order to destroy any sensitive information
  1102. which may still be held by the SFS driver or in a system buffer.  For example
  1103. to unmount all currently mounted volumes the command would be:
  1104.  
  1105.   mountsfs unmount
  1106.  
  1107. To unmount the volume currently mounted as F: the command would be:
  1108.  
  1109.   mountsfs unmount f:
  1110.  
  1111. A faster way to unmount all volumes is to use the quick-unmount hotkey which
  1112. the SFS driver checks for and accepts in place of the standard unmount command.
  1113. This can be used both as a convenience to quickly and easily unmount all SFS
  1114. volumes, or as a safety feature to allow encrypted volumes to be instantly
  1115. unmounted if there is a danger of the data on them being compromised (this
  1116. option is generally unavailable under Windows - see the section
  1117. "Incompatibilities" below).
  1118.  
  1119. If no hotkey is currently set (either from a previous use of the mountsfs
  1120. command or through the use of the `HOTKEY=' option when the SFS driver is
  1121. loaded), mountsfs will install a default quick-unmount hotkey which is a
  1122. combination of the left and right shift keys.  On most keyboards these keys are
  1123. fairly large and easy to reach during normal typing.  When both shift keys are
  1124. pressed and released, all mounted SFS volumes will be unmounted as if a normal
  1125. unmount command had been issued via mountsfs, and a single beep will sound to
  1126. indicate that the unmount was successful.
  1127.  
  1128. Occasionally this default hotkey combination may clash with other software, or
  1129. it may be desirable to use another hotkey combination.  This can be set with
  1130. the `hotkey=' option, which may be used to specify any combination of the left
  1131. shift key, right shift key, control key, alt key, and a letter key[3].  The
  1132. keys are specified in the following manner:
  1133.  
  1134.     Alt key        = `alt'          Control key     = `ctrl'
  1135.     Left shift key = `leftShift'    Right shift key = `rightShift'
  1136.     Letter key     = `a'...`z'
  1137.  
  1138. Key combinations should be separated by hyphens, `-'.  The key names are not
  1139. case sensitive and can be given in upper or lower case, or a mixture of both.
  1140. If an unknown key name is used or the key names are not separated with hyphens,
  1141. mountsfs will complain:
  1142.  
  1143.   Error: Bad quick-unmount hotkey format
  1144.  
  1145. For example, to specify the use of the left shift and right shift keys as the
  1146. quick-unmount hotkey (the usual default setting), the command used in the
  1147. previous example would be changed to:
  1148.  
  1149.   mountsfs hotkey=LeftShift-RightShift vol=secure
  1150.  
  1151. To use the Control, Alt, and Z keys as the quick-unmount hotkey the command
  1152. would be:
  1153.  
  1154.   mountsfs hotkey=ctrl-alt-Z vol=secure
  1155.  
  1156. The hotkey value can also be altered without mounting any volumes.  This will
  1157. merely update the current hotkey without making any other changes.  For example
  1158. to set the right Shift, Control, and I keys as the quick-unmount hotkey (a
  1159. rather unwieldy combination), the command would be:
  1160.  
  1161.   mountsfs hotkey=rightshift-CTRL-I
  1162.  
  1163. Finally, the hotkey can also be specified when the SFS driver is loaded. More
  1164. details on this are given in the section "Advanced SFS Driver Options" below.
  1165.  
  1166. If the hotkey unmount is performed while the driver is accessing a volume, the
  1167. disk access will complete before the volume is unmounted.
  1168.  
  1169. The SFS driver can also automatically unmount volumes if they have not been
  1170. accessed for a certain amount of time.  This option is useful if there is a
  1171. chance that an interruption may call you away from a system with mounted SFS
  1172. volumes allowing others access to the encrypted data, or can simply be used as
  1173. a general safety precaution to automatically unmount the volumes after a
  1174. sizeable period of inactivity (this option is unavailable under Windows - see
  1175. the section "Incompatibilities" below).  However, care should be taken to allow
  1176. a large enough safety margin for the timeout, as having a volume take itself
  1177. offline five seconds before work is saved to it can be annoying.
  1178.  
  1179. When volumes are mounted using mountsfs, the time until they are automatically
  1180. unmounted can be set with the `timeout=' option, which is used to specify the
  1181. delay in minutes until the unmount takes place.  By default, no auto-unmount
  1182. timer is set.  For example, using the previous mount command but to have all
  1183. volumes automatically unmounted after 15 minutes of inactivity the command
  1184. would be:
  1185.  
  1186.   mountsfs timeout=15 vol=secure
  1187.  
  1188. The timeout period must be between 1 and 30,000 minutes (this means the upper
  1189. timeout limit is around three weeks).  If a timeout value of less than 1 minute
  1190. or greater than three weeks is given, mountsfs will exit with the error
  1191. message:
  1192.  
  1193.   Error: Timeout value must be between 1 and 30,000 minutes
  1194.  
  1195. If no accesses are made to any volumes within the given time period, the
  1196. volumes will be automatically unmounted.  Like the case when a hotkey unmount
  1197. is made, a single beep will sound to indicate that the unmount has taken place.
  1198.  
  1199. If the timed unmount is performed while the driver is accessing a volume, the
  1200. disk access will complete before the volume is unmounted.
  1201.  
  1202. Finally, if all is OK, mountsfs will print a short summary message for the
  1203. action taken.  For example if the command given was one to unmount all volumes,
  1204. with two volumes F: and G: of which only F: was currently mounted, the summary
  1205. would be:
  1206.  
  1207.   Volume F: has been unmounted
  1208.   Volume G: is already unmounted
  1209.  
  1210. Footnote [1]: Some versions of SFS will automatically know the users name when
  1211.               a volume is mounted.  Unfortunately the DOS version isn't one of
  1212.               these.
  1213.  
  1214. Footnote [2]: The driver checks for a disk change when a disk read or write
  1215.               attempt is made rather than whenever DOS performs a general disk
  1216.               check, as DOS may perform up to half a dozen consecutive disk
  1217.               checks before doing anything, which leads to a significant loss
  1218.               in performance.
  1219.  
  1220. Footnote [3]: The letter key is based on the US keyboard since the SFS driver
  1221.               must check for keyboard scan codes rather than actual character
  1222.               codes, which can differ slightly for some keyboards.
  1223.  
  1224.  
  1225. Advanced SFS Driver Options
  1226. ---------------------------
  1227.  
  1228. The SFS driver supports several advanced options which can be used to customize
  1229. the operation of SFS.  These include the ability to mount SFS volumes
  1230. automatically when the driver is loaded, and the ability to change the
  1231. quick-unmount hotkey, the auto-unmount timeout, and the password prompt used
  1232. when automounting volumes.
  1233.  
  1234.  
  1235. Automounting SFS Volumes
  1236.  
  1237. SFS volumes can be automatically mounted when the system is started up rather
  1238. than having to be mounted through the mountsfs program.  This can be specified
  1239. using the `/AUTOMOUNT=identification number' option when the SFS driver is
  1240. loaded, in conjunction with the 8-digit volume identification number displayed
  1241. by mksfs when the encrypted volume is created or by using the `mountsfs
  1242. information' command.  The volume identifier is used to tell the SFS driver
  1243. which volume to load.  If the volume allows multiuser access, only the volume
  1244. administrator can automount it.  Normal volume users must follow the standard
  1245. volume mount procedure using mountsfs.  The operation of shared SFS volumes is
  1246. explained in more detail in the section "Sharing SFS Volumes Between Multiple
  1247. Users" below.
  1248.  
  1249. For example if mksfs displays the volume identifier `530A17FD' for a particular
  1250. volume then the command to automount this volume would be:
  1251.  
  1252.   DEVICE=SFS.SYS /AUTOMOUNT=530A17FD
  1253.  
  1254. If an incorrect volume identifier is given, the driver will display
  1255.  
  1256.   Error: Invalid automount ID, skipping automount
  1257.  
  1258. and skip the automount procedure.  If the volume identifier is correct, the
  1259. driver will locate the required volume on the disk and try to read in the
  1260. information needed to process it.  If this information cannot be read or is
  1261. incorrect, the driver will display:
  1262.  
  1263.   Error: Invalid SFS volume information, skipping automount
  1264.  
  1265. and skip the automount procedure.  If all is correct the driver will ask for
  1266. the password exactly as mountsfs would:
  1267.  
  1268.   Please enter password (10...100 characters), [ESC] to quit:
  1269.  
  1270. At this point a password in the given length range can be entered.  For
  1271. security reasons the password is not echoed to the screen.  Any typing errors
  1272. when entering the password can be corrected with the backspace key.  The Esc
  1273. key can be used to quit.  The software will check for a password longer than
  1274. the maximum of 100 characters or an attempt to backspace past the start of the
  1275. password, and beep a warning when either of these conditions occur.  Up to
  1276. three attempts at entering a correct password are allowed before the automount
  1277. is skipped.  If the Esc key is pressed the SFS driver will print:
  1278.  
  1279.   Aborted at user request
  1280.  
  1281. and skip the automount procedure.  Otherwise, once the password has been
  1282. entered, the SFS driver will process it and, if an incorrect password is
  1283. detected, will print:
  1284.  
  1285.   Error: Incorrect password, skipping automount
  1286.  
  1287. Otherwise the encrypted volume will be auto-mounted ready for use, with the
  1288. drive letter being the next available DOS drive.  In general the automount
  1289. procedure is the same as the one which mountsfs uses, except that the full
  1290. functionality of mountsfs is not available during the automount.  Once the
  1291. volume has been mounted and after the usual SFS installation message has been
  1292. displayed, the driver will display the DOS drive on which the encrypted volume
  1293. is mounted.  For example if the volume was available as drive G: the message
  1294. would be:
  1295.  
  1296.   Encrypted volume is now mounted as drive G:
  1297.  
  1298. If multiple volumes are to be automounted then then automount ID's should be
  1299. given in the order in which the mounts are to take place.  For example if a
  1300. second SFS volume with the volume identifier `4850414B' were to be automounted
  1301. then the previous example would change to:
  1302.  
  1303.   DEVICE=SFS.SYS /AUTOMOUNT=530A17FD /AUTOMOUNT=4850414B
  1304.  
  1305. As more volumes are mounted, the driver will automatically increase the mount
  1306. point allocation until the maximum number of 5 mount points has been reached.
  1307. If an attempt is made to automount more than 5 volumes, the driver will print:
  1308.  
  1309.   Error: No more disk units available for automount
  1310.  
  1311. and skip the automount procedure.
  1312.  
  1313.  
  1314. Setting the Quick-Unmount Hotkey Value
  1315.  
  1316. When a volume is mounted, the quick-unmount hotkey is by default set to a
  1317. combination of the left and right shift keys.  However, like the mountsfs
  1318. `hotkey=' option, the SFS driver supports user-defined hotkeys with the
  1319. `/HOTKEY=quick-unmount hotkey' command.  This may be used to specify any
  1320. combination of the left shift key, right shift key, control key, alt key, and a
  1321. letter key, in the following manner:
  1322.  
  1323.     Alt key        = `alt'          Control key     = `ctrl'
  1324.     Left shift key = `leftShift'    Right shift key = `rightShift'
  1325.     Letter key     = `a'...`z'
  1326.  
  1327. Key combinations should be separated by hyphens, `-'.  The key names are not
  1328. case sensitive and can be given in upper or lower case, or a mixture of both.
  1329. If an unknown key name is used or the key names are not separated with hyphens,
  1330. the SFS driver will complain:
  1331.  
  1332.   Error: Bad quick-unmount hotkey format
  1333.  
  1334. For example, to specify the use of the left shift and right shift keys as the
  1335. quick-unmount hotkey (the usual default setting), the command used in the
  1336. previous example would be changed to:
  1337.  
  1338.   DEVICE=SFS.SYS /AUTOMOUNT=530A17FD /HOTKEY=LEFTSHIFT-RIGHTSHIFT
  1339.  
  1340. To use the Control, Alt, and Z keys as the quick-unmount hotkey without
  1341. automounting any volumes the command would be:
  1342.  
  1343.   DEVICE=SFS.SYS /HOTKEY=CTRL-ALT-Z
  1344.  
  1345.  
  1346. Changing the Automount Password Prompt
  1347.  
  1348. In some environments it may be undesirable to alert others to the fact that
  1349. disk encryption is being used.  Using the /SILENT option with the driver
  1350. removes most indications of the presence of SFS, but if volumes are automounted
  1351. the appearance of the password prompt may still give things away.  To correct
  1352. this problem, the SFS driver supports user-definable prompts with the
  1353. `/PROMPT=user-prompt' command.  This may be used to specify any single-word
  1354. prompt, or, if the prompt is surrounded by quotation marks `"', any combination
  1355. of characters until another `"' is encountered.  For example to make the SFS
  1356. automount procedure appear like a network login, the previous automount example
  1357. might be changed to:
  1358.  
  1359.   DEVICE=SFS.SYS /SILENT /PROMPT=Login: /AUTOMOUNT=530A17FD
  1360.  
  1361. Instead of the usual password prompt, the driver would now display:
  1362.  
  1363.   Login:
  1364.  
  1365. when the password was required.
  1366.  
  1367. If a prompt containing multiple words is required, the prompt itself would be
  1368. surrounded with quotation marks:
  1369.  
  1370.   DEVICE=SFS.SYS /SILENT /PROMPT="Please log on:" /AUTOMOUNT=530A17FD
  1371.  
  1372. To print a line break as part of a prompt, the escape code '\n' may be used,
  1373. allowing prompts to be split over multiple lines, or simply to have blank lines
  1374. as part of the prompt.  An extended form of the above prompt, split over two
  1375. lines, could be given as:
  1376.  
  1377.   DEVICE=SFS.SYS /SILENT /PROMPT="Network logon\nPlease enter password:"
  1378.                          /AUTOMOUNT=530A17FD
  1379.  
  1380. which would be printed as:
  1381.  
  1382.   Network logon
  1383.   Please enter password:
  1384.  
  1385. The order in which these arguments are given is important, since an option only
  1386. takes effect once the driver has processed it.  If the /PROMPT option is given
  1387. after the /AUTOMOUNT option, the driver won't use the new prompt until after
  1388. the automount has taken place.  This can be used to allow multiple independant
  1389. prompts when several volumes are mounted, so that in the following example:
  1390.  
  1391.   DEVICE=SFS.SYS /SILENT /PROMPT="Local server logon: " /AUTOMOUNT=130D2C17
  1392.                          /PROMPT="Printer server logon: " /AUTOMOUNT=2A1102D3
  1393.  
  1394. the prompt "Local server logon: " would be used for the first volume to be
  1395. automounted and the prompt "Printer server logon: " would be used for the
  1396. second volume to be automounted.
  1397.  
  1398.  
  1399. Changing the Automount Read/Write Access Status
  1400.  
  1401. Write access to an automounted volume can be disabled in the same manner as
  1402. using the `mountsfs +r' options would (more information on read-only access to
  1403. SFS volume is given in the section "Mounting an SFS Volume" above).  For
  1404. example to automount the volume used in the previous example read-only the
  1405. command would be:
  1406.  
  1407.   DEVICE=SFS.SYS /READONLY /AUTOMOUNT=530A17FD
  1408.  
  1409. Like the automount /PROMPT option, the /READONLY option must be given before
  1410. the /AUTOMOUNT which it is to affect.
  1411.  
  1412. Read/write and readonly access to multiple automounted volumes can be
  1413. selectively turned on and off using the /READWRITE and /READONLY commands.  A
  1414. /READWRITE or /READONLY command applies for all automounts which follow it
  1415. until another /READWRITE or /READONLY command is encountered.  For example to
  1416. mount the first volume in the previous example read-only and the second one
  1417. with normal write access the command would be:
  1418.  
  1419.   DEVICE=SFS.SYS /READONLY /AUTOMOUNT=530A17FD /READWRITE /AUTOMOUNT=4850414B
  1420.  
  1421.  
  1422. Setting the Auto-unmount Timeout value
  1423.  
  1424. The auto-unmount timeout value functions just like the mountsfs `timeout='
  1425. option, and is used to tell the SFS driver to unmount volumes automatically if
  1426. they have not been accessed for a certain amount of time.  The time until
  1427. volume are automatically unmounted can be set with the `/TIMEOUT=' option,
  1428. which is used to specify the delay in minutes until the unmount takes place.
  1429. This option can only be used in conjunction with the `/AUTOMOUNT=' option, and
  1430. by default no auto-unmount timer is set.
  1431.  
  1432. Using the previous automount example, but to have volumes automatically
  1433. unmounted after 15 minutes of inactivity, the command would be:
  1434.  
  1435.   DEVICE=SFS.SYS /AUTOMOUNT=530A17FD /TIMEOUT=15
  1436.  
  1437. The timeout period must be between 1 and 30,000 minutes (this means the upper
  1438. timeout limit is around three weeks).  If a timeout value of less than 1 minute
  1439. or greater than three weeks is given, mountsfs will exit with the error
  1440. message:
  1441.  
  1442.   Error: Timeout value must be between 1 and 30,000 minutes
  1443.  
  1444. If no accesses are made to any volume within the given time period, all volumes
  1445. will be automatically unmounted.  Like the case when a hotkey unmount is made,
  1446. a single beep will sound to indicate that the unmount has taken place.
  1447.  
  1448.  
  1449. Changing the Characteristics of an SFS Volume
  1450. ---------------------------------------------
  1451.  
  1452. Once an SFS volume has been created, various characteristics of the volume and
  1453. the entire volume itself can be altered using the chsfs program.  This allows
  1454. the SFS volume password, volume name, and volume serial number to be changed,
  1455. allows SFS volumes to be quickly deleted, and allows the reversion of SFS
  1456. volumes to their original unencrypted form.
  1457.  
  1458. The chsfs program is run in the following manner:
  1459.  
  1460.   chsfs [newpass] [newvol=<new volume name>] [newserial=<new serial no>]
  1461.         [delete] [convert] [vol=<volume name>] [<drive>]
  1462.  
  1463. Since all arguments are named, they can be given in any order.  The order shown
  1464. here is merely an example.
  1465.  
  1466. In general the volume name would be specified with the `vol=' option.  For
  1467. example if the volume name was "Secure disk volume" then the command would be:
  1468.  
  1469.   chsfs <command> vol=secure
  1470.  
  1471. The volume name can be in upper or lower case, and the full name need not be
  1472. given.  chsfs will match whatever part of the name is given to any SFS
  1473. volume names found until it finds a match.
  1474.  
  1475. Alternatively, if the SFS volume to be accessed is on a removable disk, the
  1476. drive letter can be specified instead of the volume name.  For example if the
  1477. disk drive was A: then the command would be:
  1478.  
  1479.   chsfs <command> a:
  1480.  
  1481. In order to find all available SFS volumes on all disks, the `mountsfs info'
  1482. option can be used as outlined in the section "Mounting an SFS Volume" above.
  1483.  
  1484. The basic characteristics of the SFS volume can be changed with the `newpass',
  1485. `newserial', and `newvol' commands, which set a new password, new serial
  1486. number, and new volume name respectively.  These commands can each be used
  1487. individually, or two or even all three may be used together (although they
  1488. can't be used in conjunction with the `delete' or `convert' options).  Their
  1489. usage is in general similar to their use with mksfs.  `newpass' takes no
  1490. arguments and will prompt for the original password and then the new password,
  1491. after which it will change the volume password from the original to the new
  1492. one.  `newserial' takes as an argument the new serial number to use for the
  1493. volume'  `newvol' takes as an argument the new volume name.  For example to
  1494. change the name of the SFS volume "Personal data" to "Letters" and the serial
  1495. number to 1234, the command would be:
  1496.  
  1497.   chsfs vol=personal newvol=Letters newserial=1234
  1498.  
  1499. If the newpass option is used, chsfs will first ask for the old poassword:
  1500.  
  1501.   Please enter old password (10...100 characters), [ESC] to quit:
  1502.  
  1503. After verifying that the password is correct, chsfs will ask for the new
  1504. password:
  1505.  
  1506.   Please enter new password (10...100 characters), [ESC] to quit:
  1507.  
  1508. Like mksfs, chsfs will then ask for this password a second time for safety.
  1509.  
  1510. Once the details for the new volume name, serial number, or password have been
  1511. obtained and the changes made to the volume, chsfs will display a message
  1512. indicating the changes made.  For the above example the message would be:
  1513.  
  1514.   Volume characteristics successfully updated.
  1515.  
  1516.   New volume name is `Letters'.
  1517.   New volume serial number is `1234'.
  1518.  
  1519. Note that chsfs doesn't perform the checking for duplicate or nonexistant
  1520. volume names and serial numbers which mksfs does.  This is to allow the safe
  1521. choices forced by mksfs to be subsequently overridden using chsfs if
  1522. required[1].
  1523.  
  1524. Changes to the SFS volume itself are made using the `convert' and `delete'
  1525. commands.  `convert' converts a volume back to its original unencrypted form,
  1526. and `delete' deletes it entirely, leaving behind what appears to the operating
  1527. system as an unformatted disk filled with random noise.
  1528.  
  1529. Since converting or deleting a volume while it is mounted is rather dangerous,
  1530. chsfs checks whether the volume to be converted or deleted is currently
  1531. mounted.  If it is, it will prompt:
  1532.  
  1533.   Warning: This volume is currently mounted.  Do you wish to unmount it
  1534.            and continue [y/n]
  1535.  
  1536. At this point a response of 'Y' will continue and a response of 'N' will exit
  1537. the program.  If a 'N' response is entered, the volume can be unmounted using
  1538. mountsfs or the quick-unmount hotkey before chsfs is re-run.
  1539.  
  1540. The delete option will first print the name and creation date of the SFS volume
  1541. to be deleted.  At this point the exact name and date of the volume should be
  1542. checked to ensure that this is indeed the one to be deleted.  In this example
  1543. the volume information will be displayed as:
  1544.  
  1545.   Encrypted volume is `Incriminating evidence', created 04/11/93
  1546.  
  1547. chsfs will now prompt for the password in the usual manner.  It uses this to
  1548. check that access to the volume is legitimate, and is needed for chsfs to
  1549. acquire various pieces of information it needs to perform the deletion.  The
  1550. program will then prompt:
  1551.  
  1552.   Warning: The deletion operation will permanently destroy all data on this
  1553.            volume.  Are you sure you want to continue with the deletion [y/n]
  1554.  
  1555. At this point a response of 'Y' will continue and a response of 'N' will exit
  1556. the program.
  1557.  
  1558. If chsfs is told to continue, it will perform multiple overwrite passes over
  1559. the SFS volume header (which contains all the information needed to access the
  1560. volume), printing a progress report as it performs the overwriting:
  1561.  
  1562.   Overwriting: Pass 1
  1563.  
  1564. In total chsfs will perform 30 separate overwrite passes which have been
  1565. selected to provide the best possible chances of destroying data for various
  1566. disk encoding schemes (the exact details are given in the section "Deletion of
  1567. SFS Volumes" below).  Once the multiple overwrites have completed, chsfs will
  1568. print an informational message about the deletion operation:
  1569.  
  1570.   Encrypted volume `Incriminating evidence' has been destroyed
  1571.  
  1572. If the volume is on a fixed disk, you may wish to reboot your machine to make
  1573. the newly-deleted volume visible to DOS.  Volumes on floppy disks will
  1574. automatically be visible.  Since the disk volume is now filled with random
  1575. garbage, it will need to be formatted in the same way an unformatted disk would
  1576. be before it can be used by DOS.
  1577.  
  1578. The convert option will, like the delete option, first print the name and
  1579. creation date of the SFS volume to be converted.  At this point the exact name
  1580. and date of the volume should be checked to ensure that this is indeed the one
  1581. to be converted.  In this example the volume information will be displayed as:
  1582.  
  1583.   Encrypted volume is `Disk data', created 07/12/93
  1584.  
  1585. chsfs will prompt for the encryption password exactly as mksfs did when it
  1586. originally created the SFS volume, and will then prompt:
  1587.  
  1588.   Warning: You are about to convert this volume from an encrypted SFS one to
  1589.            a normal DOS one.  Are you sure you want to continue with the
  1590.            conversion [y/n]
  1591.  
  1592. At this point a response of 'Y' will continue and a response of 'N' will exit
  1593. the program.
  1594.  
  1595. Like mksfs, chsfs will then begin converting the disk.  As it processes the
  1596. volume, it prints a progress bar going from 0% complete to 100% complete.  The
  1597. conversion process will take a few minutes on most disks, and is somewhat
  1598. slower than a standard disk formatting procedure which only writes a very small
  1599. amount of data to the start of the disk, whereas chsfs has to read, decrypt,
  1600. and write the entire disk volume.
  1601.  
  1602. As the conversion progresses, the progress bar will gradually fill up until it
  1603. shows that the conversion is complete.  Once this has finished, chsfs will
  1604. display the message:
  1605.  
  1606.   Encrypted volume `Disk data' has been converted to a normal DOS volume.
  1607.  
  1608. The converted volume is now ready to be used as a normal DOS disk again. If the
  1609. volume is on a fixed disk, DOS will still think it is an encrypted SFS one
  1610. rather than a normal DOS one.  It is recommended that you reboot your machine
  1611. at this point to clear any memories of the old volume from the system, as DOS
  1612. will not be able to see the converted volume until the reboot takes place.  As
  1613. a reminder, chsfs will display:
  1614.  
  1615.   You may wish to reboot your machine to update the status of the volume,
  1616.   which will become available as a standard DOS disk.
  1617.  
  1618. before exiting.  If the volume is on a removable disk, no reboot is necessary
  1619. and chsfs will simply print:
  1620.  
  1621.   The volume is now available as a standard DOS disk.
  1622.  
  1623. Footnote [1]: This makes the (possibly incorrect) assumption that the chsfs
  1624.               user knows what they are doing.
  1625.  
  1626.  
  1627. Sharing SFS Volumes Between Multiple Users
  1628. ------------------------------------------
  1629.  
  1630. At times it may be necessary to share a single encrypted SFS volume between
  1631. multiple users.  For instance several individuals may require access to a
  1632. volume containing confidential business correspondence as part of their
  1633. day-to-day duties.  Usually this would require using a common password which is
  1634. known to every member of the group of people who require access.  The need to
  1635. share passwords is a serious weakness, as the inability to chose individual,
  1636. unique passwords increases the chances that a simple, easy-to-remember (and
  1637. easy-to-guess) password is chosen, or that at least one person writes it down
  1638. if it is too hard to remember.
  1639.  
  1640. SFS solves this problem by allowing each member of the group access to an
  1641. encryped volume under their own individual password.  The allocation of access
  1642. rights to a volume is controlled by an administrator who can grant or revoke
  1643. access as required.  The administration process is handled by the adminsfs
  1644. program, which is run in the following manner:
  1645.  
  1646.   adminsfs [adduser=<user name>] [deluser=<user name>]
  1647.            [chuser=<user name>] [showuser=<user name>] [showall]
  1648.            [validfrom=<DDMMYY>] [validto=<DDMMYY>] [userfile=<user file>]
  1649.  
  1650. Since all arguments are named, they can be given in any order.  The order shown
  1651. here is merely an example.
  1652.  
  1653. [!!!! That's all there is at the moment.  adminsfs is still being checked
  1654.       out by beta-testers and parts of it are still under review.  If anyone
  1655.       has any suggestions for it, let me know !!!!]
  1656.  
  1657.  
  1658. Creating Compressed SFS Volumes
  1659. -------------------------------
  1660.  
  1661. Creating a compressed drive inside an SFS volume provides, apart from the usual
  1662. benefit of increasing the apparent disk space, some additional security against
  1663. an attack by breaking up the very regular standard filesystem structure
  1664. containing large quantities of known data at known locations into a compressed
  1665. filesystem whose structure and contents are much harder to guess.
  1666.  
  1667. The instructions given here are for Stac Electronics "Stacker"[1], although it
  1668. should be possible to do the same thing with other reasonably advanced disk
  1669. compressors.  Stacker should be installed in the usual manner onto a mounted
  1670. volume.  The Stacker driver can then be loaded in two ways, either from
  1671. CONFIG.SYS onto an automounted SFS volume, or at a later point (which, however,
  1672. means that it loads an extra copy of the command interpreter).  It is also
  1673. possible to load the driver from CONFIG.SYS without activating a compressed
  1674. drive, and activate it later.  This avoids the need to automount an SFS volume
  1675. at startup.
  1676.  
  1677. As SFS uses whatever drive letters DOS allocates to it, the stacked drive will
  1678. take over the drive letter used by the SFS volume rather than swapping drive
  1679. letters for the stacked and normal drive as it usually does.  This shouldn't
  1680. provide any problems, the compressed and encrypted drive will simply replace
  1681. the encrypted drive.
  1682.  
  1683. Footnote [1]: Specifically, Stacker 3.1
  1684.  
  1685.  
  1686. WinSFS - Using SFS with Windows
  1687. -------------------------------
  1688.  
  1689. WinSFS is a prototype of the Windows version of SFS, and currently runs as a
  1690. front-end for mountsfs, which means that the mountsfs program must be either in
  1691. the DOS path or in the Windows directory for WinSFS to work.  WinSFS also needs
  1692. the Visual Basic library VBRUN200.DLL in order to run.  This file is publicly
  1693. available from a number of sources.
  1694.  
  1695. When run, WinSFS will display a window containing a list of SFS volumes
  1696. available to be mounted, a list of currently mounted volumes, and an icon bar
  1697. which is used to control WinSFS.  These icons perform the following functions:
  1698.  
  1699.   Cross icon        : Exit WinSFS
  1700.   Disk icon         : Mount an SFS volume
  1701.   Crossed disk icon : Unmount an SFS volume
  1702.   Information icon  : Display detailed information on an SFS volume
  1703.   Write icon        : Enable read/write access on an SFS volume
  1704.   Crossed write icon: Enable read-only access on an SFS volume
  1705.  
  1706.  
  1707. Mounting a Volume with WinSFS
  1708.  
  1709. To mount an SFS volume, click on the volume name in the "Available volumes"
  1710. window, and then click on either the "Mount volume" icon or the "Mount" button
  1711. (eventually this function will also be available by dragging the volume name
  1712. and dropping it into the "Mounted" list).  WinSFS will ask for the volume
  1713. password, and then mount the volume.  Once the volume is mounted, its name will
  1714. disappear from the "Available volumes" list and appear in the "Mounted" list).
  1715.  
  1716.  
  1717. Unmounting a Volume with WinSFS
  1718.  
  1719. To unmount an SFS volume, click on the volume name in the "Mounted" window, and
  1720. then click on either the "Unmount volume" icon or the "Unmount" button
  1721. (eventually this function will also be available by dragging the volume name
  1722. and dropping it into the "Available volumes" list).  WinSFS will unmount the
  1723. volume, and its name will disappear from the "Mounted" list and appear in the
  1724. "Available volumes" list).
  1725.  
  1726.  
  1727. Getting Information on a Volume with WinSFS
  1728.  
  1729. To get detailed information on a volume, click on its name, and then either
  1730. click the right mouse button, or select the "Information" icon.  This will
  1731. bring up a window giving extra information on the volume such as the creation
  1732. time, serial number, size, and automount ID.
  1733.  
  1734.  
  1735. Setting a Volume's Read/Write Access with WinSFS
  1736.  
  1737. To change the read/write status of an SFS volume, click on its name in the
  1738. "Mounted" window, and then click on either the "Read-only" or "Read/write" icon
  1739. in the icon bar to change its access status.
  1740.  
  1741.  
  1742. Command Summary
  1743. ---------------
  1744.  
  1745. This section serves as a quick-reference for the options available with the
  1746. various SFS programs.  The available options for mksfs, mountsfs, chsfs, and
  1747. adminsfs are:
  1748.  
  1749. MakeSFS - Make Secure Filesystem
  1750.  
  1751.   -c = Perform a confidence test on the volume to be encrypted without
  1752.        actually encrypting it
  1753.   -o = Override the disk boot record sanity check - may be necessary for
  1754.        some unusual disk formats
  1755.   -t = Test the integrity of the MDC/SHS encryption code used in SFS
  1756.  
  1757.   multiuser       = Allow multiuser access on the volume to be created
  1758.  
  1759.   vol=<volume name>      = Specify the name of the volume to be created
  1760.   serial=<serial number> = Specify the serial number of the volume to be created
  1761.   <drive letter>         = Specify the letter of the drive to create the
  1762.                            encrypted volume on
  1763.  
  1764. MountSFS - Mount Secure Filesystem
  1765.  
  1766.   +r  = Mount the encrypted volume with read-only access
  1767.   +rw = Mount the encrypted volume with read/write access (default)
  1768.  
  1769.   info          = Show brief information on all available SFS volumes
  1770.   information   = Show detailed information on all available SFS volumes
  1771.   status        = Show information on mounted volumes only
  1772.   unmount       = Unmount the volume
  1773.  
  1774.   hotkey=<hotkeys>    = Set the quick-unmount hotkey combination
  1775.   timeout=<timeout>   = Set the auto-unmount timer value in minutes
  1776.   user=<username>     = Specify the user name for a volume with multiuser access
  1777.   userfile=<filename> = Specify the path to the information file associated with
  1778.                         a volume which allows multiuser access
  1779.   vol=<volume name>   = Specify the name of encrypted volume to mount
  1780.   <drive letter>      = Specify the drive letter of the volume to mount
  1781.                         (For volumes on floppy disks only)
  1782.  
  1783. ChangeSFS - Change Secure Filesystem
  1784.  
  1785.   newpass               = Set a new volume password
  1786.   newvol=<volume name>  = Specify the new volume name
  1787.   newserial=<serial no> = Specify the new volume serial number
  1788.  
  1789.   delete    = Delete SFS volume
  1790.   convert   = Convert volume back to unencrypted form
  1791.  
  1792.   vol=<volume name>   = Specify the name of the encrypted volume to change
  1793.   <drive letter>      = Specify the drive letter of the volume to change
  1794.                         (For volumes on floppy disks only)
  1795.  
  1796. AdminSFS - Administrate SFS User Database
  1797.  
  1798.   adduser=<user name> = Add a new user with the given name to the database
  1799.   deluser=<user name> = Remove user with the given name from the database
  1800.   chuser=<user name>  = Change user database entry for the named user
  1801.   showuser=<user name>= Show access information for a given user
  1802.   showall             = Show access information for all users
  1803.  
  1804.   validfrom=<DDMMYY>  = Set date after which access for a user is allowed
  1805.   validto=<DDMMYY>    = Set date at which a users access expires
  1806.  
  1807.   userfile=<filename> = Specify the path to the user information file
  1808.  
  1809.  
  1810. Incompatibilities
  1811. -----------------
  1812.  
  1813. Over the years a variety of strange hardware and software setups have been
  1814. created in order to get around some of the shortcomings of the PC hardware and
  1815. DOS (and occasionally other operating systems) software.  Since SFS accesses
  1816. the disk at a level below that normally used by the operating system, it will
  1817. bypass special options like compressed volumes and non-local networked drives,
  1818. and won't recognise nonstandard hardware like drives with more than 1024
  1819. cylinders which require special software patches in order to work with DOS.
  1820. For example, SFS will recognise the uncompressed volumes used by Stacker and
  1821. DoubleSpace, but won't see the compressed volumes as these are an illusion
  1822. created in software and visible only to DOS.  It is therefore not possible to
  1823. encrypt compressed volumes (there would be very little point, as encryption
  1824. would render the data completely uncompressible), although it is possible to
  1825. create a compressed volume inside an encrypted volume (this is covered in the
  1826. section "Creating Compressed SFS Volumes" above).
  1827.  
  1828.  
  1829. Checking for Problems with mksfs
  1830.  
  1831. If your system has an unusual setup, or if you're worried about what SFS may
  1832. do, you can use a special option with the mksfs command to perform a check on
  1833. the drive which is to be encrypted.  This option also bypasses a number of the
  1834. usual checks SFS performs relating to duplicate volume names, anonymous
  1835. volumes, and so on, to allow all types of volume arrangements to be checked.
  1836.  
  1837. If the `-c' option is specified along with the drive letter, mksfs will (if the
  1838. volume in question is a fixed disk) first display technical information on all
  1839. available fixed disk volumes, so that the command:
  1840.  
  1841.     mksfs -c e:
  1842.  
  1843. would produce the following output:
  1844.  
  1845.   Drive partition information follows:
  1846.  
  1847.   Ph Bt Dr Cyl. Head Sec. Cyl. Head Sec.  Size  ID Type
  1848.   -- -- -- ---- ---- ---- ---- ---- ---- ------ -- ----
  1849.    0  N  C    0    1    0  379   15   39 121600 06 DOS (16-bit FAT, >= 32M)
  1850.    0  Y  -  380    0    0  383   15   39   1280 0A OS/2 boot manager
  1851.    0  N  D  384    1    0  594   15   39  67200 06 DOS (16-bit FAT, >= 32M)
  1852.    0  N  E  595    1    0 1022   15   39 136640 06 DOS (16-bit FAT, >= 32M)
  1853.                                                    This would be the SFS disk
  1854.  
  1855. This information is only displayed for fixed disks, as floppy disks don't
  1856. contain this information.  The values in the various columns are Ph = physical
  1857. drive number, Bt = bootable flag, Dr = DOS drive letter, Cyl,Head,Sec =
  1858. partition start, Cyl,Head,Sec = partition end, Size = size in kbytes, ID =
  1859. partition ID byte, and Type = partition type.  The proposed SFS partition will
  1860. be marked as such.  If you don't know what these values mean, don't worry -
  1861. this option is mainly useful in providing technical information for those who
  1862. want it.
  1863.  
  1864. In addition, mksfs may display specific information about the drive on which
  1865. the SFS volume is to be created.  Typically the message will be something like:
  1866.  
  1867.   The drive is a WDC AC2420 with a dual ported multi-sector
  1868.   cacheing 256K buffer which supports high-speed direct access.
  1869.  
  1870. This indicates that the drive will work with a faster direct-access version of
  1871. the SFS driver.  This is still being tested, and should provide a noticeable
  1872. performance improvement over the current version.
  1873.  
  1874. Once all drives have been checked, more specific information on the actual
  1875. volume in question is displayed:
  1876.  
  1877.   Volume will be checked on fixed drive E:
  1878.   This drive has a capacity of 136.6 MB and is labelled `Data disk'
  1879.   Are you sure you want to check this volume [y/n]
  1880.  
  1881. As with the usual mksfs process, typing 'Y' will continue with the volume check
  1882. and typing 'N' will exit.  If you choose to continue, mksfs will first perform
  1883. an initial disk confidence test which consists of some general checks on the
  1884. volume layout to make sure its format is valid, and will then perform a read
  1885. confidence test in which it reads random disk blocks and compares them with the
  1886. data reported by the operating system.  If any errors are encountered, it will
  1887. print a diagnostic message before continuing.  If all is OK, the sequence of
  1888. messages will be:
  1889.  
  1890.   Performing disk confidence test...
  1891.   Performing read confidence test...
  1892.   [various test-in-progress messages]
  1893.   Confidence test successfully concluded
  1894.  
  1895. If there are problems, the diagnostic message will give more information on the
  1896. nature of the problem.  Once the test has concluded, an error count will be
  1897. displayed.  In either case, mksfs will exit after the tests have concluded
  1898. without creating the encrypted volume.  If used with the `-c' option, mksfs
  1899. will never modify any information on disk, whether the tests are successful or
  1900. not.  This is important, as it allows a confidence test to be performed before
  1901. an encrypted volume is created.
  1902.  
  1903.  
  1904. Problems with Windows
  1905.  
  1906. The timed auto-unmount option and quick-unmount hotkey option are generally
  1907. unavailable under Windows as Windows disables the standard keyboard and timer
  1908. handling when it runs[1].  In order to unmount a volume from within Windows,
  1909. the mountsfs program must be run explicitly.  The one exception to this rule is
  1910. that if a quick-unmount hotkey is set from within a DOS session then it will
  1911. remain available (but only within the DOS session) while that particular DOS
  1912. session is active.
  1913.  
  1914.  
  1915. Problems with Other Software
  1916.  
  1917. The Mitsumi CDROM device driver, if installed before another block driver like
  1918. SFS, will mistakenly try to use the drive letter allocated to the other driver
  1919. as its own one.  There have been reports of other CDROM drivers (in particular
  1920. the Sony one) which display similar traits (CDROM drivers are strange beasts
  1921. which have rather special requirements).  The DTC SCSI driver has a similar
  1922. problem in that it grabs more drive letters than DOS allocates to it, which
  1923. means that any block drivers loaded after it will be allocated drive letters by
  1924. DOS which are already being used by the SCSI driver.  The solution to this
  1925. problem is to make sure that the SFS driver is loaded before any problematic
  1926. CDROM or SCSI drivers by placing the DEVICE=SFS.SYS line before the one which
  1927. loads the CDROM or SCSI driver in the CONFIG.SYS file.
  1928.  
  1929. The KEYB driver incorrectly handles the keyboard interrupt, which locks out the
  1930. SFS driver's quick-unmount hotkey handling if the `HOTKEY=' option is used at
  1931. the time the driver is loaded.  If the `HOTKEY=' option is *not* specified when
  1932. the SFS driver is loaded, but is set later (after the KEYB driver has been
  1933. loaded) using mountsfs, everything works fine.
  1934.  
  1935. Some (now very rare) device drivers and TSR's will destroy the contents of
  1936. 32-bit registers when they are activated, which means that the data in the SFS
  1937. driver will become invalid from one machine instruction to the next.  There
  1938. have been reports of older versions of the PC-Kwik cache and Novell's
  1939. non-dedicated file server version 2.2 doing this.  A program to detect and
  1940. possibly fix this problem is:
  1941.  
  1942.     garbo.uwasa.fi:/pc/turbopas/trash.zip
  1943.  
  1944. Some of the Borland software development tools don't handle DOS critical errors
  1945. very well (they hang either when the error occurs or soon afterwards).  Since
  1946. trying to access a non-mounted volume is treated by DOS as an error, it may
  1947. cause programs like the IDE and the debugger to hang.  Trying to read a floppy
  1948. drive without a disk in the drive, and any other action which causes a DOS
  1949. critical error, can have the same effect.
  1950.  
  1951.  
  1952. Problems with hardware
  1953.  
  1954. Some floppy drive and system BIOS combinations aren't terribly reliable.  It
  1955. has been reported that a laptop using the Phoenix 1.01 BIOS gives a multitude
  1956. of disk errors when encrypting a disk using mksfs.  The exact error type is
  1957. uncertain since the error code returned when the disk access fails is an
  1958. undefined value.  The Award 3.03 BIOS when used with some floppy drives also
  1959. causes problems, especially with newer versions of DOS (version 6.0 and up),
  1960. which may have great trouble reliably writing disks.  Microsoft's suggested
  1961. solution to the problem is a BIOS upgrade.
  1962.  
  1963. Footnote [1]: Windows virtualizes the keyboard and timer interrupts and locks
  1964.               out SFS.  Although it is possible to bypass this, it must be done
  1965.               from within Windows itself, which is not possible for a device
  1966.               driver like SFS.
  1967.  
  1968.  
  1969. Authentication of SFS Software
  1970. ------------------------------
  1971.  
  1972. There have been several occasions in the past when fake versions of software
  1973. have been distributed.  Sometimes these fake release are even wrapped up in a
  1974. nice-looking "security envelope" guaranteeing their authenticity.  With
  1975. encryption software like SFS it is all too tempting for an opponent to simply
  1976. create and distribute a compromised version of SFS rather than try to break the
  1977. SFS encryption itself.  In order to avoid any problems in this respect, the
  1978. distributed SFS driver and executables are accompanied by a digital signature
  1979. which can be used to verify that it is indeed an official version.
  1980.  
  1981. In order to check the authenticity of the particular version of SFS, you will
  1982. need the PGP encryption package, and my public key, which is included in the
  1983. standard PGP distribution.  My key is signed by Philip Zimmermann, the original
  1984. author of PGP, and several members of the PGP development team.  First, my key
  1985. should be checked for authenticity with the command:
  1986.  
  1987.   pgp -kc "Peter Gutmann"
  1988.  
  1989. When it performs the key check, PGP should display the following signatures:
  1990.  
  1991.   Type bits/keyID     Date    User ID
  1992.   pub  1024/997D47 1992/08/02 Peter Gutmann <pgut1@cs.aukuni.ac.nz>
  1993.   sig!      E722D9 1992/11/26   Branko Lankester <lankeste@fwi.uva.nl>
  1994.   sig!      997D47 1992/10/11   Peter Gutmann <pgut1@cs.aukuni.ac.nz>
  1995.   sig!      7C02F9 1992/09/07   Felipe Rodriquez <nonsenso@utopia.hacktic.nl>
  1996.   sig!      1336F5 1992/09/05   Harry Bush <Harry@castle.riga.lv>
  1997.   sig!      67F70B 1992/09/02   Philip R. Zimmermann <prz@sage.cgd.ucar.edu>
  1998.  
  1999. There may be other signatures on there, but these are the ones from the PGP
  2000. development team and are the most important ones.  Version 2.1 and up of PGP
  2001. can, in addition, generate a key fingerprint for a key.  This can be calculated
  2002. with the command:
  2003.  
  2004.   pgp -kvc "Peter Gutmann"
  2005.  
  2006. PGP should display the following:
  2007.  
  2008.   pub  1024/997D47 1992/08/02 Peter Gutmann <pgut1@cs.aukuni.ac.nz>
  2009.             Key fingerprint = 7C 6D 81 DF F2 62 0F 4A  67 0E 86 50 99 7E A6 B1
  2010.  
  2011. If the keyID or key fingerprint for my key differs from the one shown above or
  2012. the signatures don't check out, then the key is a probably a fake and shouldn't
  2013. be trusted.  Assuming the key is in order, the authenticity of the device
  2014. driver and the support software can be checked with:
  2015.  
  2016.   pgp sfs.sig sfs.sys
  2017.   pgp <program>.sig <program>.exe
  2018.  
  2019. where sfs.sig and <program>.sig are the digital signatures included with SFS as
  2020. distributed.  For example to check the authenticity of the mksfs program type:
  2021.  
  2022.  pgp mksfs.sig mksfs.exe
  2023.  
  2024. When it performs the check, PGP should display:
  2025.  
  2026.   Good signature from user Peter Gutmann <pgut1@cs.aukuni.ac.nz> .
  2027.   Signature made <date of signature>
  2028.  
  2029. If PGP reports a bad signature then the executable shouldn't be trusted.  A
  2030. new, hopefully untouched, version can be obtained from any archive site, BBS,
  2031. or system which carries the standard SFS distribution, or it can be obtained
  2032. directly from the author.
  2033.  
  2034.  
  2035. Applications
  2036. ------------
  2037.  
  2038. Apart from the simple use of SFS for personal and business data privacy, there
  2039. are a number of other possible applications for which it can be used.  Some of
  2040. these are listed below.
  2041.  
  2042.  
  2043. Secure Information Exchange
  2044.  
  2045. If a communications channel is available between two systems which use SFS,
  2046. confidential data can be transferred from one encrypted SFS volume to the other
  2047. by using encryption on the communications channel.  For example a businessman
  2048. whose work involves a lot of travel could read data off the SFS volume on his
  2049. portable computer and encrypt it as it is sent via modem to his place of work.
  2050. At work the data could be decrypted and written to another SFS volume.  The
  2051. only time the data is available in unencrypted form is while it is being read
  2052. off the SFS volume and re-encrypted for transmission, which represents a
  2053. minimal risk as interrupting the transmission will involve stopping the program
  2054. which will (presumably) contain error handlers which erase any sensitive
  2055. information from memory.
  2056.  
  2057. Using a package like PGP (Pretty Good Privacy) or PEM (Privacy-Enhanced Mail)
  2058. in conjunction with SFS allows the secure distribution of information through
  2059. an online service like a computer bulletin board.  The online system can
  2060. retreive the public key of the person requesting the information, read the
  2061. required data off the SFS volume into the encryption program where it is
  2062. encrypted with the recipients public key, and transmit it.  At the other end
  2063. the recipient decrypts the data with their private key and writes it straight
  2064. onto their own SFS volume.  Again, the amount of time in which unencrypted data
  2065. is available is minimal, and properly implemented software will destroy any
  2066. sensitive information if interrupted in any way.
  2067.  
  2068.  
  2069. Defence in Depth
  2070.  
  2071. With the increasing strength of cryptographic software which is becoming
  2072. available to the public, means of compromising encryption security which don't
  2073. involve breaking the encryption itself are becoming more and more desirable.
  2074. This may involve things like creating fake versions of the encryption software
  2075. which have trapdoors in them and planting them in a victims system, planting
  2076. versions which save the entered password somewhere and then restore the
  2077. original unaltered copies, or similar tricks.  This means that for maximum
  2078. security it is necessry to not only protect the password, but also to protect
  2079. the encryption software itself, and any software which interacts with it, and
  2080. anything which interacts with that, ad nauseum.  If several encryption and
  2081. security packages are used, every one of these must be protected separately.
  2082.  
  2083. By using SFS, some degree of protection is offered against malicious
  2084. manipulation, since an attacker must first get to the software stored on an SFS
  2085. volume in order to compromise it.  Storing other security-related software on
  2086. an encryption volume takes it out of the reach of any attack, but makes the SFS
  2087. software itself more of a target for an attack.  Eventually this problem can be
  2088. reduced somewhat through the use of SFS encryption hardware, which is currently
  2089. under (very gradual) development.  Another possibility is to store duplicate
  2090. copies of the SFS software on an encrypted volume which is initially mounted
  2091. read-only.  The versions on the SFS volume can be compared (using software also
  2092. stored on the SFS volume) with the unencrypted versions, and if they are
  2093. identical to the reference versions, write access to the volume can be enabled
  2094. and the volume used as normal.  Another possibility is to simply store
  2095. checksums or digital signatures for the SFS programs on the encrypted volume,
  2096. and only write-enable it if the checksums or signatures check out.
  2097.  
  2098. Using SFS for Virus Protection
  2099.  
  2100. SFS can be used as a form of virus protection for large collections of
  2101. computers by using it to create a centralised entry point to the system for all
  2102. data.  Consider a company operating 1,000 separate machines.  Normally this
  2103. would require 1,000 copies of a virus scanner to be installed and updated every
  2104. few months as new viruses appear.  In addition, use of the scanner on every one
  2105. of the 1,000 machines would have to be enforced rigorously.
  2106.  
  2107. An alternative is to install SFS on each of the machines, and make a policy
  2108. that only SFS-encrypted disks will be used within the company.  Then a single
  2109. scanner can be installed on a single machine, and all disks brough in from the
  2110. outside scanned and encrypted on that machine.
  2111.  
  2112. If every computer is initially virus-free, and all disks are SFS-encrypted,
  2113. then there are two possible means of attack for a virus.  The first is to
  2114. infect a file or a disk when it is outside the company.  However as disks
  2115. originating from within the company are encrypted, no files (or, indeed,
  2116. anything) are visible on it, so there is nothing for a virus to infect (in
  2117. fact, DOS won't even recognise the disk as being formatted).  All disks
  2118. originating from outside the company have to be processed by the single
  2119. controlled computer before they can be used, meaning that any virus on a
  2120. non-company disk should be picked up before the disk is encrypted.
  2121.  
  2122. Alternatively, a boot sector virus could infect an SFS-encrypted disk.
  2123. However, if an attempt is made to use the infected disk (which involves
  2124. mounting it), the mount will fail as the boot sector will contain the virus
  2125. rather than the SFS volume header.  The person who tried to mount the volume
  2126. will assume the disk has not been "converted" yet, and will bring it to the
  2127. machine used for processing the disks.  At this point the virus can be found by
  2128. the scanner.
  2129.  
  2130. This procedure isn't totally error free.  It won't work if there may already be
  2131. viruses present on one or more of the machines before SFS is installed.  In
  2132. addition, an SFS disk whose volume header is overwritten by a virus is probably
  2133. damaged beyond repair.  However it does provide a reasonable amount of
  2134. protection, and has the pleasant side effect of keeping all the company records
  2135. secure against unauthorized access attempts.
  2136.